搭建nginx反向代理用做内网域名转发
作者:@ouyang 发布时间:2015年07月21日 阅读: 4,166 分类:技术相关
本文转载自: 搭建nginx反向代理用做内网域名转发 http://blog.csdn.net/tham_/article/details/45973787
在实际办公网中,因为出口IP只有一个,要实现对外提供服务的话就必须得做端口映射,如果有多个服务要对外开放的话,这只能通过映射不同端口来区分,这在实际使用过程中非常的痛苦(记忆困难、一一对应关系也没有规律、访问的时候还得加端口),这个痛苦的问题用表格的形式来形象的描述如下:
Public IP | Public Port Number | Internal IP | Internal Port Number | Note |
1.1.1.1 | 80 |
192.168.1.10 | 80 |
service A |
1.1.1.1 | 81 |
192.168.1.11 | 80 |
service B |
1.1.1.1 | 8080 |
192.168.1.25 | 80 |
service C |
1.1.1.1 | 443 |
192.168.1.26 | 443 |
service D |
1.1.1.1 | 444 |
192.168.1.35 | 443 |
service E |
在需要对外开放的服务很多的情况下,NAT的方式虽然难用、难记,但至少还是能够满足需求的(可用端口要小于65535个),但如果A、B、C服务都想(或者必须)使用默认的80、443端口的话,在只有一个公网IP的情况下是没法满足的,如果能有一种如下的实现方式,那就完美了:
Domain Name | Public IP | Public Port Number | Internal IP | Internal Port Number | Note |
A.example.com | 1.1.1.1 | 80 | 192.168.1.10 | 80 | service A |
B.example.com | 1.1.1.1 | 80 | 192.168.1.11 | 80 | service B |
C.example.com | 1.1.1.1 | 80 | 192.168.1.25 | 80 | service C |
D.example.com | 1.1.1.1 | 443 | 192.168.1.26 | 443 | service D |
E.example.com | 1.1.1.1 | 443 | 192.168.1.35 | 443 | service E |
首先来分析一下,传统NAT的话肯定是实现不了,因为NAT是3层ip加4层端口的方式做映射,而域名(如http header中)都属于7层的内容,要实现的话只能借助支持7层http协议解析的工具实现,经过一番研究发现反向代理可以实现,那太好了,反响代理的工具一大堆:squid、apache、nginx、haproxy、mysql proxy等等,本文仅讲基于http、https协议的实现,其他协议暂不讨论。
有了工具的支持,接下来就得考虑考虑如何部署的问题:
(1)域名解析到路由器的公网ip-->在路由器(pfsense)上安装squid-->配置反向代理(开启http、https反向代理、主机映射、域名正则匹配转发)-->成功实现(需要路由器支持);
(2)域名解析到路由器的公网ip-->在路由器上做传统NAT,将80、443端口分别指向反向代理服务器-->配置反向代理服务器的-->成功实现(通用方法);
WINDOWS 2008Server 配置nginx 反向代理服务器
本案例有用过可行
0、先要在域名官网上面配置域名对应的IP地址,然后要在自己路由器上面将80端口映射到要装nginx服务器的IP地址。
1、从官网上面下载nginx1.6.2 WINDOWS版本的。访问地址http://nginx.org/en/download.html
2、解压缩到C盘根目录下面
3、复制C:\nginx\conf\nginx.conf,保存成一个副本
4、编辑nginx.conf,内容如下