nginx反向代理用做内网域名转发

原文: 2.反向代理-域名转发 - 糖三岁 - CSDN博客 ,此处转载作为备忘。

1.域名转发反向代理图

nginx作为反向代理服务器时候在接收到互联网的请求包体之后不会立即将请求转发到上游web服务器中这一点和squid有区别。nginx是把请求包体全部保存在nginx所在机器的磁盘由于对请求内容进行缓存,再将请求转发给上游服务器这样做延长了请求时间但是降低了web端的负载。而squid一边接受外界请求一边转发请求给web端。这样降低负载的原因在于:通常外界与代理服务器走公网比较慢,二代理服务器和web端走内网比较快,这样将压力全部集中在反向代理服务器上面。

2.nginx实现

将默认启动的配置文件复制一份,我们在这一份上面做修改之后使用它启动nginx。复本命名为nginx_test_1.conf

打开可以看到默认设置了一个server,监听的是80端口并返回一个html静态页面。所以这就是我们启动nginx服务之后访问80窗口可以查看是否正常启动。

修改后的整个配置文件

tomcat_server_1.com tomcat_server_2.com 两个域名是同时绑定到我们路由器的外网ip的

访问 tomcat_server_1.com 会被代理服务器转发到192.168.88.139:8080上面去

访问 tomcat_server_2.com 会被代理服务器转发到192.168.88.140:8080上面去

3.测试

首先打开两个虚拟机上面的tomcat,保证使用下面地址可以正常访问

192.168.88.139:8080

192.168.88.140:8080

由于我们上面两个域名不是真实的域名。这里我们修改测试机器的域名解析文件,将上面两个域名绑定到nginx服务器的ip上面。在hosts文件上增加下面这一段

这样我们在本地浏览器访问上面两个域名可以跳转到两个tomcat主页上,关闭其中一个tomcat2发现域名2访问报错可以验证实现了域名转发。




原文: nginx反向代理用做内网域名转发_nginx_脚本之家 ,此处转载作为备忘。

由于公司内网有多台服务器的http服务要映射到公司外网静态IP,如果用路由的端口映射来做,就只能一台内网服务器的80端口映射到外网80端口,其他服务器的80端口只能映射到外网的非80端口。非80端口的映射在访问的时候要域名加上端口,比较麻烦。并且公司入口路由最多只能做20个端口映射。
肯定以后不够用。

然后发现可以在内网搭建一个nginx反向代理服务器,将nginx反向代理服务器的80映射到外网IP的80,这样指向到公司外网IP的域名的HTTP请求就会发送到nginx反向代理服务器,利用nginx反向代理将不同域名的请求转发给内网不同机器的端口,就起到了“根据域名自动转发到相应服务器的特定端口”的效果,而路由器的端口映射做到的只是“根据不同端口自动转发到相应服务器的特定端口”。

本次实验目标是做到:在浏览器中输入 xxx123.tk 能访问到内网机器192.168.10.38的3000端口,输入 xxx456.tk 能访问到内网机器192.168.10.40的80端口

在浏览器中输入 xxx123.tk 的时候访问的内网服务器192.168.10.38的3000端口,输入 xxx456.tk 访问192.168.10.40的80端口的作用。如果想对后端机器做负载均衡,像下面这配置就可以把对 nagios.xxx123.tk 的请求分发给内网的131和132这两台机器做负载均衡了。

之前没配置下面这段,访问时候偶尔会出现504 gateway timeout

发布于 2018-11-08 15:01