1、Nginx 作为服务器时,获取客户端真实 IP 使用 http_realip_module,默认安装的 Nginx 未安装此模块,需要重新编译 Nginx 增加 --with-http_realip_module
。
安装 gcc:
sudo apt-get install gcc
安装 pcre 库及其开发文件:
sudo apt-get install libpcre3 libpcre3-dev
安装 zlib 库及其开发文件:
sudo apt-get install zlib1g zlib1g-dev
安装 openssl 库及其开发文件:
sudo apt-get install openssl libssl-dev
1.1、下载nginx1.180
wget http://nginx.org/download/nginx-1.18.0.tar.gz
1.2解压
tar zxvf nginx-1.18.0.tar.gz
1.3进入目录下执行添加模块
cd nginx-1.18.0
./configure --prefix=/path/server/nginx --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_realip_module
1.4编译
make
make install
2、修改 nginx.conf 文件。
vim /etc/nginx/nginx.conf
注:下面set_real_ip_from 后面的需要修改为上一级代理服务器 IP 或者 IP 段。
fastcgi connect_timeout 300;
fastcgi send_timeout 300;
fastcgi read_timeout 300;
fastcgi buffer_size 64k;
fastcgi buffers 4 64k;
fastcgi busy_buffers_size 128k;
fastcgi temp_file_write_size 128k;
# 修改如下部分的配置字段和信息
set_real_ip_from xx.xx.xx.xx;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
3、重启 Nginx。
service nginx restart