«

使用宝塔NGINX反向代理后,后端获取前端访客真实IP的思路及方法

二胡 发布于 阅读:205


使用宝塔NGINX反向代理后,后端获取前端访客真实IP的思路及方法

前几天自建了一个CDN,CDN反向代理后端网站后,发现后端服务器日志访客显示的IP地址都是来自前端的CDN节点,由于宝塔只提供了基础的反向代理功能,获取前端访客真实IP回传到后端的功能需要我们手动设置,在这里我提供下我的设置思路及方法,思路仅供参考。虽然此操作没有多大风险,但是还是建议操作前做好快照备份,毕竟数据无价!

我这里的CDN反向代理流程图如下: A:前端物理机:安装了Nginx,开启了反向代理,并指向B:后端物理机(实际生产环境):安装了Nginx

设置前端向后端传入正确IP方法如下:

A:前端物理机

1、添加/编译模块:http_realip_module​(宝塔默认已经编译安装有realip模块了,无需重新编译,这里写出来是为了给有些单独安装Nginx的小伙伴看。)

2、宝塔-网站-选择你的反向代理站-配置文件,添加以下代码

#向后端传递真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
#向后端传递真实IP

image

添加完成后点击保存即可

3、宝塔-软件商店-Nginx-设置-重启(点击重启后,服务生效。)

B:后端物理机(实际生产环境) 1、添加/编译模块:http_realip_module​(宝塔默认已经编译安装有realip模块了,无需重新编译,这里写出来是为了给有些单独安装Nginx的小伙伴看。)

2、修改宝塔Nginx配置文件启动httprealipmodule模块宝塔的Nginx配置文件路径(这里以宝塔版本:7.6.0为演示): /www/server/nginx/conf/nginx.conf

在http标签的括号里添加以下代码:

#获取前端真实IP
set_real_ip_from XXX.XXX.XXX.XXX;(这里填写你前端CDN的真实IP)
#获取前端真实IP

image

添加完以上代码后保存即可

3、宝塔-软件商店-Nginx-设置-重启(点击重启后,服务生效。)


原文地址