Nginx实现内网服务唯一端口外网映射
原文地址:https://www.cnblogs.com/relax-zw/p/9922144.html
2.1 内网服务唯一端口外网映射
(一) 组网图
(二) 简要说明:
如标题所示,该功能可以实现内网环境下所有服务端口通过nginx的正向代理通过唯一端口映射至外网环境;且当本地服务设置特定域名后,外网可直接使用内网服务自定义的域名加映射端口进行访问。
如下图:
实现功能:外网访问各个服务自定义的域名+统一的映射端口进行访问。
可解决问题:
(一) 映射端口量实现无限量
有效解决内网路由端口数量不足的情况,由于常规的路由器对外可支持的映射端口为20个,当需求量超出时,只有手动更换对应的映射端口;但是有了nginx,我们只需要在配置文件中加入需要映射的服务信息即可实现对外映射的需要,且路由无需做任何改变。
(二) 安全系数增加
a) 由于内网映射的服务自定义了访问域名,在不知道相应服务域名的前提了,公共环境是无法访问对应的内网服务的。
b) 由于公网中对外仅提供了唯一的映射端口,即使访问者知道你的公网IP及端口,由于nignx可以自定义设置默认访问页面,对于访问者来说,内网的所有服务均处于相对安全状态下。
(三) nginx配置:
#user nobody;
worker_processes 1; #开启niginx工作进程,一般几个CUP核心写几个
error_log /usr/local/nginx/logs/error.log; #启动日志存放路径设置
events {
worker_connections 1024; #一个进程能同时处理1024个请求
}
http {
#开启gzip压缩
gzip on;
#设置允许压缩的页面最小字节(从header头的Content-Length中获取) 建议大于1k
gzip_min_length 1k;
#以16k为单位,按照原始数据大小以16k为单位的4倍申请内存
gzip_buffers 4 16k;
#识别http协议的版本,早起浏览器可能不支持gzip自解压,用户会看到乱码
gzip_http_version 1.1;
#等级1-9 最小的压缩最快 但是消耗cpu
gzip_comp_level 4;
#匹配压缩类型
gzip_types text/plain text/css test/javascript application/json application/javascript application/x-javascript application/xml;
#设置需要压缩的数据格式
gzip_vary on; #启用应答头"Vary: Accept-Encoding"
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# 访问日志配置
access_log /usr/local/nginx/access.log;
upstream mytomcat123{
server 192.168.1.119:15588;
}
upstream isatomcat{
server 192.168.1.119:15587;
}
upstream isatomcat60{
server 192.168.1.60:15587;
}
#设定虚拟主机配置1
server {
listen 88;
server_name mytomcat123;
#同一端口外网映射后,使用不同ip访问不同的内网服务
charset utf-8;
access_log logs/host.access.log;
error_log logs/host.error.log;
location / {
proxy_pass http://mytomcat123;
root html;
index index.html index.htm;
}
}
#设定虚拟主机配置2
server {
listen 88;
server_name isatomcat;
#同一端口外网映射后,使用不同ip访问不同的内网服务
charset utf-8;
access_log logs/host.access.log;
error_log logs/host.error.log;
location / {
proxy_pass http://isatomcat;
root html;
index index.html index.htm;
}
}
#设定虚拟主机配置3
server {
listen 88;
server_name isatomcat60;
#同一端口外网映射后,使用不同ip访问不同的内网服务
charset utf-8;
access_log logs/host.access.log;
error_log logs/host.error.log;
location / {
proxy_pass http://isatomcat60;
root html;
index index.html index.htm;
}
}
}
测试配置文件备份:
注意红色标记,这里配置了3个内网服务,
192.168.1.60:15587(服务别名为: tomcat60)
192.168.1.119:15587(服务别名为:tomcat)
192.168.1.119:15588(服务别名为:mytomcat123)
同时监听的端口是88,我这里将其映射至外网,外网访问端口为10388
(四) 本地配置域名解析便于外网访问
目的:快速定位解析访问域名
注意:由于目前公司内部使用的是免费的域名解析工具,会出现域名解析异常导致的访问失败的情况(老问题),在不影响工作的情况建议直接使用外网IP的方法来规避此类问题。
a) Windows配置访问验证
访问C:\Windows\System32\drivers\etc 下打开hosts文件 加入
relaxsystem027.gnway.cc isatomcat isatomcat60 mytomcat123
Windows下尝试访问:
如下图所示
我们可以看到3台服务已经可以使用外网映射的公共端口通过自定义的域名进行访问了。莫名的感觉到很强,有没有。
注意:使用公网域名加映射端口访问时,默认跳转到的是nginx配置的第一个虚拟服务路径;这里就实现了访问安全策略。
b) Linux配置访问验证
访问编辑/etc/hosts
Linux下访问
考虑到访问客户端应用场景应该都是使用windows上,这里不做相关验证
此处略
转载于:https://www.cnblogs.com/boonya/p/11301460.html
Nginx实现内网服务唯一端口外网映射相关推荐
- 内网网站发布到外网-五种方法
转自:http://www.nat123.com/Pages_8_549.jsp 汇总固定公网IP.动态公网IP.内网环境无公网IP,这三种网络环境下的发布内网网站到外网的实现教程方案. 一,固定公网 ...
- nginx解决内外网隔离无法访问外网web地址问题
nginx.conf配置文件示例如下: worker_processes 1; events { worker_connections 1024; } http { include mime.type ...
- nginx正向代理配置,解决内外网隔离无法访问外网web地址问题
前提: 内网电脑只能能够访问外网电脑的8086端口. 外网电脑能否访问外网地址. nginx.conf配置文件示例如下: worker_processes 1; events { worke ...
- 利用nginx反向代理在内网服务器(无外网)下访问接口,视频,地图(一)
最近在项目中遇到一个需求,需要把项目部署在客户内网服务器上(无外网),内网服务器(无外网)需要访问公网IP,由于我们的项目包括外接谷歌地图接口,视频直播接口:项目经理就把这个任务分配给我,让做ngni ...
- 内网服务器如何提供外网远程连接访问
在局域网本地网络环境时,我们一般用远程桌面连接来访问内部windows服务器,或在个人电脑上用SSH客户端来远程访问内网的Linux主机.远程桌面连接和SSH都是系统自带的,且可以通过简单配置即可以开 ...
- EasyNVS摄像机公网全终端无插件网页摄像机直播管理服务EasyNVS如何在内网环境下与外网和公网对接
背景说明 由于互联网的飞速发展,传统安防摄像头的视频监控直播与互联网直播相结合是大势所趋.传统安防的直播大多在一个局域网内,在播放的客户端上也是有所限制,一般都需要OCX Web插件进行直播.对于安防 ...
- 远程桌面连接的开启,和借助内外网软件,实现外网PC手机远程控制内网电脑,详细图文教程
简要:远程桌面的配置使用,利用teamviewer和nat123等工具外网远程访问内网,及手机外网控制内网桌面. 在实际环境操作中,大多人会遇到这样的问题:主机在内网,需要开启远程桌面,并同时需要提供 ...
- 奇迹mu服务端搭建外网联机教程方案
奇迹mu服务端搭建外网联机教程方案 我是艾西今天跟大家分享下奇迹服务端架设方法 1,安装MS-SQL2000(微软的数据库服务器) 2,还原奇迹服务端中的数据库文件 3,设置服务端中IP及其数据源 4 ...
- Linux局域网内配置使用proxy连接外网
Linux局域网内配置使用proxy连接外网 公司为局域网,对外不开放.已知某服务器(server1)可以对外连接, 本机PC1安装centos,且与server1互联,则可以直接配置yum 使用pr ...
最新文章
- boost::intrusive::list_member_hook用法的测试程序
- log4j 2.x --LogManager
- html5 websocket插件,html5实现的WebSocket一个小例子(附代码)
- 「总结」 MLEAutoMaton的各种板子总结
- Impala的安装(含使用CM安装 和 手动安装)(图文详解)
- jieba分词相关、join合并列表元素
- 使用PLSQL导出oracle表结构,表数据;导入数据
- 仿微信在线聊天源码 DuckChat聊天系统PHP采用 PHP 编写的聊天软件,简直就是一个完整的迷你版微信
- 电脑测试耗电量软件,有测验电脑耗电量的软件么 ?
- 144项大神级ppt制作技术
- 北京16个山水美景| 清明小长假走起吧!
- Mac开发-NSTextView软回车转换为硬回车
- 灰度共生矩阵(GLCM)并计算能量、熵、惯性矩、相关性(matlab)(待总结)
- 解决:kubeadm init K8S初始化报错02
- Win XP系统无法关机时如何强制软关机
- 即时通讯系统的消息到达率如何保障
- Swift UILabel 数字动画效果
- 软件测试工程师工资怎么样?高吗?
- 2022出海南亚:巴基斯坦电商市场现状及发展前景
- 大脑,字节,背部,Bun头-程序员的优先事项
热门文章
- php avi格式播放,Linux_网页播放器代码全集,1.avi格式代码片断如下:obje - phpStudy...
- 如何恢复录音删除的录音文件_电脑录音软件如何定时自动录音
- 2003 php5.4,【php】在Windows2003下配置Apache2.4与php5.4
- 前端常用60个工具方法
- 【若依(ruoyi)】template might not exist or might not be accessible by any of the configured Template Res
- 解决The package java.awt is not accessible或者javax.swing is not accessible的问题
- ARCore+自研引擎,渲染大规模数据
- OpenCV 识别图片中的米粒个数,并计算米粒的平均面积和长度(转)
- 软件测试人员到底需不需要懂代码?懂代码的测试员有什么区别?
- 上网行为管理如何应对mac地址克隆和IP盗用.