nginx实现内⽹服务唯⼀端⼝外⽹映射
2.1        内⽹服务唯⼀端⼝外⽹映射
(⼀)      组⽹图
(⼆)      简要说明:
如标题所⽰,该功能可以实现内⽹环境下所有服务端⼝通过nginx的正向代理通过唯⼀端⼝映射⾄外⽹环境;且当本地服务设置特定域名后,外⽹可直接使⽤内⽹服务⾃定义的域名加映射端⼝进⾏访问。
如下图:tomcat虚拟主机怎么设置
实现功能:外⽹访问各个服务⾃定义的域名+统⼀的映射端⼝进⾏访问。
可解决问题:
(⼀)  映射端⼝量实现⽆限量
有效解决内⽹路由端⼝数量不⾜的情况,由于常规的路由器对外可⽀持的映射端⼝为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      pes;
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 log;
location / {
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 log;
location / {
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 log;
location / {
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⽂件加⼊
< isatomcat isatomcat60 mytomcat123
Windows下尝试访问:
如下图所⽰
我们可以看到3台服务已经可以使⽤外⽹映射的公共端⼝通过⾃定义的域名进⾏访问了。莫名的感觉到很强,有没有。
注意:使⽤公⽹域名加映射端⼝访问时,默认跳转到的是nginx配置的第⼀个虚拟服务路径;这⾥就实现了访问安全策略。
b)    Linux配置访问验证
访问编辑/etc/hosts
Linux下访问
考虑到访问客户端应⽤场景应该都是使⽤windows上,这⾥不做相关验证此处略

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。