|
这么多年,经常会碰到有人问我如何做geo跳转来自己优化自己的流量
网上大部分的解决办法都是自己维护一个IP数据库,然后用各种语言,无论是php,python,go 等等,对用户的IP进行判断,然后进行跳转.
这样一来有可能存在的问题,一个是IP数据库更新太慢而且不准,毕竟大部分人都是使用的免费的maxmind 的ip 数据库,另外就是问出这种问题的人的coding水平都很差,写出的代码一般都不过关,最后就是维护麻烦.
一个简单的确非常有效的办法,就是把域名放在cloudflare下面,然后直接nginx层面处理跳转,nginx用c写的,运行速度要比php 之类的快很多,同时结合cloudflare 提供的HTTP_CF_IPCOUNTRY 这个IP 头进行国家的判断.
假如说我们想要把CN流量跳转到www.163.com, MX 的流量跳转到www.facebook.com, FR 的流量跳转到www.twitter.com, 其余流量跳到google.com, 那么我们在nginx 的配置里面这么写:
- map $http_cf_ipcountry $afflink {
- default www.google.com;
- CN www.163.com;
- MX www.facebook.com;
- FR www.twitter.com;
- }
- server {
- listen 80;
- return 302 https://$afflink;
- }
复制代码
nginx 的 map 功能用来匹配国家和跳转的URL,然后在server 里面直接return 就可以了
只是抛砖引玉,活用nginx 的map 和 return 可以实现很多功能
|
评分
-
查看全部评分
|