军哥 lnmp 安装 nginx 扩展 http_realip_module --应对 CDN 无法获取用户真实IP
因为网站使用了 Fastly 的 CDN ,导致后台显示用户注册的IP地址全部变为了CDN自家的地址。
这就导致无法看到真实用户的 IP 地址以及分布了。
本来想着不去解决这个问题,可是抱着好奇心还是去搜索查了查,然后发现 Nginx 是有模块可以解决该问题的。
首先需要安装 http_realip_module 模块,因为使用的环境是军哥的 Lnmp ,默认没有安装该模块,所以需要手动来安装。
Lnmp 官网有说明:https://lnmp.org/faq/lnmp1-2-upgrade.html
所以按照教程开始:
进入到 lnmp 安装目录
cd 空格
cd lnmp1.6
然后编辑 lnmp.conf 在 Nginx_Modules_Options 引号内加入 --with-http_realip_module
就是如下:
Download_Mirror='https://soft.vpser.net'
Nginx_Modules_Options='--with-http_realip_module'
PHP_Modules_Options=''
##MySQL/MariaDB database directory##
MySQL_Data_Dir='/usr/local/mysql/var'
MariaDB_Data_Dir='/usr/local/mariadb/var'
##Default website home directory##
Default_Website_Dir='/home/wwwroot/default'
Enable_Nginx_Openssl='y'
Enable_PHP_Fileinfo='n'
Enable_Nginx_Lua='n'
Enable_Swap='y'
~
然后执行
./upgrade.sh nginx
注意此处,因为必须要选择 Nginx 的升级版本,如果你不想升级的话,就输入当前安装的 nginx 的版本就可以了
查询当前 Nginx 版本
nginx -V
因为是平滑升级,所以升级过程不影响网站访问,也无需重启 Nginx
升级后查看得知模块已安装
然后我们开始对 Nginx 编辑 ngin.conf 配置以获取用户真实 IP
cd /usr/local/nginx/conf
在 http { } 中添加
set_real_ip_from 103.138.13.10/34;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
以上的IP地址换成你使用的CDN的IP地址段。
重启 nginx
lnmp nginx restart