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上,这里不做相关验证

此处略

nginx实现内网服务唯一端口外网映射的更多相关文章

  1. [已解决]通过多层nginx,tomcat服务无法获取外网真实IP

    问题描述: 使用腾讯的御天验证码,提示IP非法IP,内网的tomcat,经过2层nginx代理,服务获取的IP地址为内网ip地址,由于腾讯云的御天验证码对单一IP的频繁访问有拦截的,认定为非法IP(刷 ...

  2. (转)内网网站发布到外网-nat123动态公网IP动态域名解析

    环境描述: 路由器分配的是动态公网IP,且有路由器登录管理权限,网站服务器部署在路由器内部网络.如何将内网网站发布到外网大众访问? 解决方案: 内网使用nat123动态域名解析,将域名实时固定解析到路 ...

  3. 实现外网远程桌面内网的电脑和外网访问内网的FTP

     基于之前两篇文章搭建了ngrok实现了内网穿透,用过了http和https的协议完成了外网访问内网的网站,这一篇教大家用tcp协议实现外网远程桌面内网的电脑和外网访问内网的FTP. 一.外网远程桌面 ...

  4. Linux CentOS7 开启80,443端口外网访问权限

    一.查看系统防火墙状态(如果返回 running 代表防火墙启动正常) firewall-cmd --state 二.开启端口外网访问 1.添加端口 返回 success 代表成功(--permane ...

  5. Linux CentOS7 开通端口外网端口访问权限

    一.查看系统防火墙状态(如果返回 running 代表防火墙启动正常)firewall-cmd --state二.开启端口外网访问1.添加端口 返回 success 代表成功(--permanent永 ...

  6. 【转】CentOS5.6下配置rsync内网同步数据到外网

    [转]CentOS5.6下配置rsync内网同步数据到外网 本文转自:http://www.linuxidc.com/Linux/2012-06/64070.htm 一.需求 卫士那边有一个需求,就是 ...

  7. mysql 开放端口 外网访问

    mysql 开放端口 外网访问 作者: moyixi 时间: April 24, 2018 分类: 默认分类,数据库,mysql 前提: 如果是云服务器,请先把安全组件相应的开发 查看服务器的端口33 ...

  8. sockets+proxychains代理,使内网服务器可以访问外网

    Socks5+proxychains做正向代理 1.         应用场景: 有一台能上外网的机子,内网机子都不能连外网,需求是内网机子程序需要访问外网,做正向代理. 2.         软件 ...

  9. Docker 容器内无法通过 HTTP 访问外网

    现象 内/外网 IP 和 域名 可以 ping 通 容器内无法访问宿主机所在内网及外网的 Web 服务(404) 通过 curl 查看返回头信息感觉是所有 Web 请求被中转到一个固定的 Nginx ...

随机推荐

  1. 四元数(Quaternion)

    从应用角度说一下unity Quaternion,Quaternion是四元数,百度相关资料可能找到的都是一些大牛给你搞个矩阵云云,给你讲解四元数.在此只是从应用角度讲一讲.最简单理解四元数对应一个向 ...

  2. springcloud之Feign、ribbon设置超时时间和重试机制的总结

    一 超时时间配置 如果在一个微服务当中对同一个接口同时配置了Hystrix与ribbon两个超时时间,则在接口调用的时候,两个计时器会同时读秒. 比如,访问一个接口需要2秒,你的ribbon配置的超时 ...

  3. 激活Sublime Text 3,亲测有效!

    一.修改sunlime_text.exe 打开Sublime Text的安装目录,在修改之前要先备份一下sunlime_text.exe. 欢迎关注微信公众号:万猫学社,每周一分享Java技术干货. ...

  4. [Scala]Scala安装以及在IDEA中配置Scala

    一  Scala简述 Scala (斯卡拉)是一门多范式(multi-paradigm)的编程语言. 这里所谓的范式,指的是编写程序的方式,不同的编程语言,方式也不尽相同,也就意味着Scala编程语言 ...

  5. 一些 bypass WAF 技巧

    也是之前讲课写的,现在搬运过来 --- WAF所处的位置 * 云WAF * 硬件WAF * 软件WAF * 代码级WAF   WAF的绕过 1 架构层    1 对于云WAF,寻找真实ip       ...

  6. 使用Typescript重构axios(十一)——接口扩展

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...

  7. MyBatis --- 映射关系【一对一、一对多、多对多】,懒加载机制

    映射(多.一)对一的关联关系 1)若只想得到关联对象的id属性,不用关联数据表 2)若希望得到关联对象的其他属性,要关联其数据表 举例: 员工与部门的映射关系为:多对一 1.创建表 员工表 确定其外键 ...

  8. Eclipse对Java项目打Jar包

    在本Java项目中,如下图一所示,Java项目含有外部依赖Jar包 -- fastjson-1.2.29.jar  包. 在经历了多次的失败后,最后我终于使用 Eclipse 对 "Java ...

  9. Linux命令实战(一)

    1.pwd(printing working directory)打印当前工作目录路径 [root@test sysconfig]# pwd /etc/sysconfig 2.ls(list)列出当前 ...

  10. haproxy+keepalived练习

    小的网站结构 说明:如果部署在云上,比如阿里云上,不需要自己部署keepalived,直接买阿里云的slb即可,slb然后分发流量到两台haproxy机器 一.先部署两个web服务器 编译安装ngin ...