> 文章列表 > 服务(第十篇)Nginx和tomcat反向代理(动静分离)

服务(第十篇)Nginx和tomcat反向代理(动静分离)

服务(第十篇)Nginx和tomcat反向代理(动静分离)

正向代理: 当用户想访问某一网址时,用户先访问代理服务器,然后由代理服务器向目标网址发送请求最终将数据返回代理服务器,最后代理服务器将数据返回给用户这一过程我们称之为正向代理。

反向代理:基本流程是与正向代理是相同的,都是通过  用户发送请求 -->代理服务器-->目标服务器。但是二者的区别在于正向代理时用户知道自己访问的是代理服务器,而反向代理是无感知的,用户本质上是不知道自己访问的是代理服务器。

动静分离(基于7层反向代理实验):

 实验准备:

准备三台虚拟机:

192.168.169.40   tomcat(两个实例)
192.168.169.50   tomcat
192.168.169.30   nginx(7层反向代理)

 

①192.168.169.40做两个tomcat实例(实验步骤在上一篇)和他们的的文件配置

这里需要在两个tomcat的webapps里面添加一个test/index.jsp(这是动态文件)

②在192.168.169.50 做tomcat的文件配置

③配置nginx和conf文件

 这里注意最后三条必须要加(不然动态页面报错400):

proxy_set_header HOST $host;(设定后端的Web服务器接收到的请求访问的主机名)

proxy_set_header X-Real-IP $remote_addr;(把$remote_addr赋值给X-Real-IP,来获取源IP)

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;(在nginx 作为代理服务器时,设置的IP列表,会把经过的机器ip,代理机器ip都记录下来)

④验证:

 

反向代理的调度算法:

 

负载均衡:

 以上已经做完了三个tomcat后端服务器了,现在需要再做一个7层代理服务器和一个4层代理服务器就可以解决了。

首先再次创建一个7层代理nginx服务器(看上面)

然后创建一个4层代理服务器做负载用:

①创建一个nginx,然后编译安装时候安装--with-stream模块(开启stream模块)

 ②更改nginx.conf文件(stream模块和http模块同级)

 ③结果: