Nginx(11)--获取真实的客户端IP
1.实验所需服务器
number1:nginx的web服务器
number2:number1的代理
number3:客户端,通过代理服务器来访问
注意: 在编译服务器number1时,要编译安装模块http_realip_module,才能做以下实验
2.配置代理服务器(number2)
-
tar zxf nginx-1.16.1.tar.gz
#解压 -
cd nginx-1.16.1/
#切换到解压路径下 -
./configure --prefix=/usr/local/nginx
#安装 -
yum install gcc openssl-devel pcre-devel -y
#安装依赖性所需软件 -
./configure --prefix=/usr/local/nginx
#安装 -
make && make install
#编译并安装
-
cd /usr/local/nginx/conf/
#切换到配置目录下 -
vim nginx.conf
#编辑配置文件 -
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
#建立nginx启动的软连接 -
nginx -t
#查看配置文件编写是否错误 -
nginx
#启动nginx - 编辑内容如下:
3.在客户端测试(number3)
-
vim /etc/hosts
#添加解析 -
curl www.westos.org
#访问域名
4.在服务器上(number1)
- 查看日志,发现访问的是172.25.254.2
-
cd /usr/local/nginx/conf/
#切换到配置目录中 -
vim nginx.conf
#编辑配置文件 - 编辑内容如下:
-
set_real_ip_from 172.25.254.2;
#真实的ip为反向代理的ip -
real_ip_header X-Forwarded-For;
#从请求头中获得,可以保存每一级ip的报文头 -
real_ip_recursive on;
#将选项打开,获取真实的ip地址 nginx -t
nginx -s reload
5.在代理服务器上(number2)
-
vim nginx.conf
#编辑配置文件 - 编辑内容如下:
-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#填写报文从哪里获得 nginx -t
nginx -s reload
6.在客户端测试(number3)
- 依旧访问的是代理服务器
7.在服务器上(number1)
- 查看日志,发现访问的是172.25.254.3