CDN默认给源服务器发送了两个请求头,X-Real-IP和X-Forwarded-For,这两个请求头都带有客户端的真实IP。
源程序在不配置的情况下,默认获取到的是节点IP,下面有两种方法来获取真实客户端IP
未配置前:
其中106.55.151.50是节点IP
开始配置:
在配置文件里,增加
set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;
Copy
如图:
配置后,访问日志里显示真实IP了
如果是php程序,就使用如下代码获取真实IP
realIP=_SERVER['HTTP_X_REAL_IP'];
即从X-Real-IP请求头获取
为了防止宝塔防火墙拉黑CDN节点,需要关闭宝塔的防火墙。方法如下:
2. 关闭Nginx付费防火墙
如果购买有Nginx付费的防火墙,在左侧菜单点击防火墙,切换到全局设置,点击防火墙开关关闭,如图:
2. 上传IP为1.2.3.4的https证书
3. 编辑网站,选择刚才的证书
4. 设置此IP网站为默认站点
点击编辑网站,切换到"高级配置",拉到最后,设置为默认站点
开启网站的https后,无法加载http的静态资源,如css,js等
方法一:
如果源服务器配置了https,可以把回源协议改为https
方法二:
添加响应头:名称:Content-Security-Policy 值:upgrade-insecure-requests
如图:
、