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 -tnginx -s reload
5.在代理服务器上(number2)
-
vim nginx.conf#编辑配置文件 - 编辑内容如下:
-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#填写报文从哪里获得 nginx -tnginx -s reload
6.在客户端测试(number3)
- 依旧访问的是代理服务器
7.在服务器上(number1)
- 查看日志,发现访问的是172.25.254.3