nginx的proxy不是用nginx作为后端服务器的代理,而是将proxy作为所有客户端的代理。

nginx服务器上的设置

图片.png

客户端测试

图片.png

这里要注意:proxy_pass后面的HOST参数一定不能带有/号。否则访问的内容不一样。

我现在把/号加上看看效果

图片.png

总结下:

如果不带/号,那么访问http://www.yueyue.com/bbs/ 就是在访问http://host/bbs

如果带了/号,那么访问http://www.yueyue.com/bbs 就是在访问https://host/



为了能够让代理服务器将不同的访问请求发往不同的后端服务器上,就需要写多个代理脚本

比如访问图片就访问RS1 访问PHP 就访问RS2

图片.png

用户端测试

图片.png

图片.png

图片.png

我们来看下后端服务器上的访问日志

/var/log/httpd/access_log

图片.png

我们的客户端的地址是10.0.1.5,但是在后端服务器上的客户端地址是10.0.1.11,就是因为代理服务器代表客户端访问资源。

为了能够在后端服务器上显示真实的客户端地址需要在代理服务器上设置,在处理请求报文时,添加真实客户端地址

在nginx配置文件中添加

图片.png

后端服务器需要将指定的字段显示到日志中

就需要编辑httpd.conf文件 /etc/httpd/conf/httpd.conf

图片.png

客户端测试

图片.png


代理服务器也可以有自己的缓存,这样可以更快的响应客户端的请求

先测试下没有缓存的情况下批量请求的响应时间

ab -c 100 -n 1000 http://www.yueyue.com/index.php

图片.png

现在添加缓存配置

图片.png

在http的模块里添加

图片.png

客户端测试

图片.png

查看缓存路径

图片.png