nginx 代理模块

注意,当使用http proxy模块(甚至fastcgi),所有的连接请求在发送到后端服务器之前nginx将缓存它们,因此,在测量从后端传送的数据时,它的进度显示可能不正确。

实验拓扑:

7.配置http反向代理

指令说明:proxy_pass

语法:proxy_pass url

默认值:no      

使用字段:location, location中的if字段      

nginx代理模块怎么使用这个指令设置被代理服务器的地址和被映射的uri,地址可以使用主机名或ip加端口号的形式,例如:proxy_pass http://localhost:8000/uri/;

8.重新加载一下配置文件

9.测试一下

注,大家可以看到,当我们访问192.168.18.208时,被代理重新定向到web1上。

10.查看一下web服务器日志

注,大家可以看到我们这里的客户的ip全是,nginx代理服务器的ip,并不是真实客户端的ip。下面我们修改一下,让日志的ip显示真实的客户端的ip。

11.修改nginx配置文件

指令说明:proxy_set_header

语法:proxy_set_header header value

默认值: host and connection

使用字段:http, server, location

这个指令允许将发送到被代理服务器的请求头重新定义或者增加一些字段。这个值可以是一个文本,变量或者它们的组合。proxy_set_header在指定的字段中没有定义时会从它的上级字段继承。

12.重新加载一下配置文件

13.测试并查看日志

注,大家可以看到日志记录的还是代理的ip,没有显示真实客户端的ip,为什么呢?我们来看一下httpd的配置文件。

14.查看并修改httpd配置文件

注,大家可以这里记录日志的参数还是%h,下面我们修改一下参数。

注,这是修改后的参数,将h%修改为%{x-real-ip}i,好的下面我们再来测试一下。

15.重启并测试

注,大家可以看到现在的日志里记录的ip地址就是真实的客户端地址了。

阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。