不知道又没人想过一个网站使用多个 CDN 的呢?近期 VeryCloud 改版开始就越来越敏感了,访问错误越来越多,于是乎想试试冒险使用这样的方法。当然,我是不建议使用多个 CDN 来加速网站的。
我在去年的这个时候曾介绍过《Linux 从 CDN 中获取真实访客 IP》,今天我要说的则是另外的一种思路。去年讲到的获取客户端 IP 的原理大致就是使用 real ip 模块来特定读取 XFF 头,但是 VeryCloud 却偏偏不使用 X-Forwarded-For 而使用 Cdn-Real-Ip 来传递 IP。
那么问题就来了,挖掘机到底哪家强? 如何在使用多个 CDN 的时候还可以获取到真实 IP?
先放一张我网站同时使用百度云加速(联通)、360 网站卫士(电信)、VeryCloud (默认)的效果:
效果仅供参考,看起来 ping 值是好了那么点点,不过实际访问速度却降低了。别问我为什么还非要用,因为任性!
教程开始
其实这个思路非常的简单,就是反代。
1、修改自己网站的监听端口为 8080
2、新建一个 nginx 配置,监听 80、反代 127.0.0.1:8080。类似如下:
server { listen 80; server_name zntec.cn *.zntec.cn; location / { proxy_pass http://127.0.0.1:8080; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $http_x_forwarded_for; access_log /var/log/http_proxy_access.log; } }
3、然后重载一下 Nginx。
如果我要让 VeryCloud 奇葩的 Cdn-Real-Ip 头也可以传递真实 IP 呢?
把刚才规则中 “proxy_set_header X-Real-IP $http_x_forwarded_for;” 的 “X-Real-IP” 改为 “Cdn-Real-Ip” 然后在你的站点配置中加入 VeryCloud 的所有 IP 和 127.0.0.1,就像这样:
set_real_ip_from 60.191.139.121; set_real_ip_from 101.64.234.121; set_real_ip_from 61.160.245.190; set_real_ip_from 120.195.110.201; set_real_ip_from 112.82.223.190; set_real_ip_from 114.80.226.232; set_real_ip_from 112.65.231.57; set_real_ip_from 127.0.0.1; real_ip_header Cdn-Real-Ip;
这样处理之后,VeryCloud 设置端口为 8080、然后由于其他的 CDN 无法反代端口所以只可以 80,但是 80 会将获取到的真实 IP 转为 Cdn-Real-Ip 继续传递到 8080,又由于 VeryCloud 本身就是这个头、所以可以获取真实的客户端 IP。
小结
这么处理的好处就是不用加各大 CDN 的所有 IP 进去 。。
还有一个更好的办法,那就是直接修改日志格式,在 Nginx.conf 中修改 log_format,但是这样的话其他不用 CDN 的网站就都要一个个修改为读 remote_addr 了。
这个看着办吧 。。我就是闹着好玩。
千万要提醒你们的一点就是:我并不赞同多个 CDN 同时使用。
- 本篇文章没有Trackback
真心不建议同时用多个CDN..
对的 。。因为这样,DNS 的错误率可以说是大大的增加了
好像就vc支持https吧、就用它了、vc的客服真的很好
国内的免费 CDN 貌似就 VC 和 YUNDUN 支持 https
VC 更屌,可以监听任何端口 。。
@Tomas: 是回源的端口还是VC监听的端口
VC 监听端口和回源端口都可以 443
@Tomas: 我说你说的“可以监听任何端口”
我说明白一点吧。。。"可以反代任何端口"
懒汉!!!!!!
最近想写 HHVM 的文章,但是看到满大街都是了。 。又不想写了 。。。额 。。我在想,更新什么文章比较好
你最近更新得很不频繁
对啊 。。最近都是一个月一篇左右
这CDN用的,B案以后就是任性啊
你也可以BA呀,BA之后屌屌哒、国内主机爽爽哒
你这网页上有错误呀
哪里有错误
数字》百毒=安全宝》加速乐
数字速度快多了 。。
@Tomas:
百毒收购安全宝,又有cloudflare的加持,估计以后会小牛逼
估计过不久就开始收费 。。。
🙂 加速乐太多错误,vc注册不了,百度云卡死,安全宝满足了。。。
为何 VC 注册不了的 。。。。咨询一下客服看看
另外。。加速乐是啥玩意儿,只听过减速了 。。
然后安全宝节点是很多,但是那个界面太卡通了 。。
@Tomas: 验证邮箱的时候,叫我登陆,登陆的时候叫我先验证邮箱然后死循环
试试联系客服?VC 客服挺好说话