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;
如图:
配置后,访问日志里显示真实IP了
如果是php程序,就使用如下代码获取真实IP
$realIP = $_SERVER['HTTP_X_REAL_IP'];
即从X-Real-IP请求头获取
为了防止宝塔防火墙拉黑CDN节点,需要关闭宝塔的防火墙。方法如下:
1. 关闭Nginx免费防火墙
软件商店-》找到Nginx免费防火墙,点击设置弹出设置页面,点击关闭防火墙,如图:
2. 关闭Nginx付费防火墙
如果购买有Nginx付费的防火墙,在左侧菜单点击防火墙,切换到全局设置,点击防火墙开关关闭,如图:
1. 用管理员添加域名为IP的网站
假如节点ip为1.2.3.4,回源ip为8.8.8.8,如图:
2. 上传IP为1.2.3.4的https证书
3. 编辑网站,选择刚才的证书
4. 设置此IP网站为默认站点
点击编辑网站,切换到"高级配置",拉到最后,设置为默认站点
复制出现530的域名,在网站列表里搜索,看是否能找到这个域名
比如你打开http://www.baidu.com/出现530,那边需要在http监听80端口
比如打开的是http://www.baidu.com:8080,需要在http监听里加8080端口
比如打开的是https://www.baidu.com:4433,需要在https监听里加4433端口
打开后台的“网站管理”-》“查看更多”-》“所有域名”,输入出现530错误的域名,点击搜索,看解析状态是否正常
如果不正常,请更正解析
/usr/local/openresty/nginx/sbin/nginx -t
如果出现如下图输出,表示语法没有问题,否则需要根据输出的错误来解决语法问题,或者联系技术服务。
ps aux | grep \[/]usr/local/openresty/nginx/sbin/nginx | awk '{print $2}' | xargs kill -HUP || true
当访问网站返回504状态码时,表示节点无法访问源IP,按下面步骤检查
当访问网站返回502状态码时,表示节点连接源服务器时,连接被断开,按下面步骤检查
curl -v --resolve www.qq.com:80:1.2.3.4 http://www.qq.com/
如果回源域名是www.qq.com,回源端口是443,回源协议是https,则测试命令为
curl -v -k --resolve www.qq.com:443:1.2.3.4 https://www.qq.com/
cname生成模式分为按网站和按套餐,他们有以下几个区别:
1)按网站生成的cname是随机的,每一个网站的cname地址都不一样。按套餐生成的cname,用这个套餐的网站的cname地址都是一样的
2)一个网站的cname模式是按套餐的话,网站如果更换套餐,cname地址是会变的,cname模式为按网站的话,换套餐时,cname地址不变
3)对于更换网站线路组而言,一个网站的cname模式为按网站的话,可以直接对这个网站更换线路组;如果是按套餐的话,不能直接对这个网站更换线路组,只能对这个网站用的套餐更换线路组,更换之后会影响这个套餐下的所有网站
网站默认生成的cname地址是随机的,如果想固定此cname地址,可以把cname模式改为按套餐
开启网站的https后,无法加载http的静态资源,如css,js等
方法一:
如果源服务器配置了https,可以把回源协议改为https
方法二:
添加响应头:名称:Content-Security-Policy 值:upgrade-insecure-requests
如图:
主控执行命令
mysql -uroot -p@cdnflypass cdn -e "update lets_account set create_failed_at=null;"
执行后,重签如果还是同一个错误,那就只能等待3个小时再试了,这个是同一个ip注册的lets账号过多导致的。
https://tool.cccyun.cc/punycode
点击如上链接,先转码,再填到域名里