kavo

军哥 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

posted on 2019-07-11 12:48  下雨天唱情歌  阅读(38)  评论(0编辑  收藏  举报  来源

导航