正向代理: 当用户想访问某一网址时,用户先访问代理服务器,然后由代理服务器向目标网址发送请求最终将数据返回代理服务器,最后代理服务器将数据返回给用户这一过程我们称之为正向代理。
反向代理:基本流程是与正向代理是相同的,都是通过 用户发送请求 -->代理服务器-->目标服务器。但是二者的区别在于正向代理时用户知道自己访问的是代理服务器,而反向代理是无感知的,用户本质上是不知道自己访问的是代理服务器。
动静分离(基于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模块同级)
③结果: