极乐门资源网 Design By www.ioogu.com
相信做过awstats的都用过开源的geoip.dat  ip数据库,刚好nginx wiki上有geoip 模块,这样就可以实现地区性的负载均衡,但是maxmind 的ip数据库对中国的支持不算太好,不过现在也不错了~ 参考文章:http://wiki.nginx.org/NginxHttpGeoIPModule   说下我的环境,我有一台美国linux 服务器,一台美国的windows 2003 ,一台本的XP。机器,其他测试用户都是,QQ群里的朋友,好了开始测试 linux : 75.125.x.x                    //美国 win2003 : 74.55.x.x                // 美国 XP :localhost                     // 北京   测试转发,美国用户~转发到 www.google.cn 电信转发到 我的一台 公网的 apache 默认页面 网通转发到  我的一台 公网业务服务器!!   1.下载安装nginx. shell $> get http://sysoev.ru/nginx/nginx-0.8.13.tar.gz shell $> tar zxvf nginx-0.8.13.tar.gz shell $> cd nginx-0.8.13 shell $>apt-get install libgeoip-dev shell $> ./configure --prefix=/usr/local/nginx --with-http_flv_module --user=www --group=www --with-http_gzip_static_module --with-http_geoip_module shell $> make shell $> make install   2.下载GeoLiteCity.dat.gz 数据库~ shell $> wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz shell $> gzip -d GeoLiteCity.dat.gz shell $> mv GeoLiteCity.dat /usr/local/nginx/conf/GeoLiteCity.dat   3.修改配置文件实现 地区性质负载 shell $> cd /usr/local/nginx/conf shell $> cat nginx.conf worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    geoip_city     GeoLiteCity.dat;     upstream    wangtong {
        server 59.151.X.X;
    }
    upstream    dianxin {
        server 75.125.X.X;
    }
    upstream    USA {
        server www.google.cn;
    }     sendfile        on;     keepalive_timeout  65;
    server {
        listen       80;
        server_name 75.125.197.200;
        root    html;
        index   index.html index.htm;         location / {
               if ($geoip_region ~ "(01|02|03|04|06|07|11|13|14|15|16|21|23|29|30|31|32|33)") {
                proxy_pass
http://dianxin$request_uri;
                }
                if ($geoip_region ~ "(05|08|09|10|12|17|18|19|20|24|25|26)") {
                proxy_pass
http://wangtong$request_uri;
                }
                if ($geoip_city_country_code ~ "US") {
                proxy_pass
http://USA$request_uri;
                }
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }       }
}
4.测试,用不同地方的机器做测试~ 我是北京用户,访问 Nginx geoip模块实现地区性负载均衡   我是北京用户访问的是默认页面是因为我没有 把 22 数字填加到 配置文件里。我是为了方便测试!大家要是用在生产上要把 22加到    if ($geoip_region ~ "(05|08|09|10|12|17|18|19|20|24|25|26)")   没有匹配到,就访问了默认页面~~   成都朋友帮忙访问: Nginx geoip模块实现地区性负载均衡   广州的朋友帮忙访问: Nginx geoip模块实现地区性负载均衡   河北朋友帮忙访问: Nginx geoip模块实现地区性负载均衡   美国 win2003 访问: Nginx geoip模块实现地区性负载均衡   直接访问 电信的 服务器 和 网通服务器   59.151.X.X;    75.125.X.X;   直接访问  网通 59.151.X.X Nginx geoip模块实现地区性负载均衡   直接访问 电信服务器 75.125.X.X   Nginx geoip模块实现地区性负载均衡   下面我来解释一下 if ($geoip_region ~ "(01|02|03|04|06|07|11|13|14|15|16|21|23|29|30|31|32|33)")   这些数字代表的是中国省份地区~~ 表如下: CN,01,"Anhui"
CN,02,"Zhejiang"
CN,03,"Jiangxi"
CN,04,"Jiangsu"
CN,05,"Jilin"
CN,06,"Qinghai"
CN,07,"Fujian"
CN,08,"Heilongjiang"
CN,09,"Henan"
CN,10,"Hebei"
CN,11,"Hunan"
CN,12,"Hubei"
CN,13,"Xinjiang"
CN,14,"Xizang"
CN,15,"Gansu"
CN,16,"Guangxi"
CN,18,"Guizhou"
CN,19,"Liaoning"
CN,20,"Nei Mongol"
CN,21,"Ningxia"
CN,22,"Beijing"
CN,23,"Shanghai"
CN,24,"Shanxi"
CN,25,"Shandong"
CN,26,"Shaanxi"
CN,28,"Tianjin"
CN,29,"Yunnan"
CN,30,"Guangdong"
CN,31,"Hainan"
CN,32,"Sichuan"
CN,33,"Chongqing"
  GeoLiteCity.dat 更多变量请看 wiki 我这里只用到两个变量一个是$geoip_region  一个是$geoip_city_country   第一个是 地区,第二个变量是国家只取 两个字母简写!   geoip_city syntax: geoip_city path/to/db.dat; default: none context: http The directive indicates the path to the .dat file used for determining countries, regions and cities from IP-address of the client. When set the module makes available the following variables: $geoip_city_country_code; - two-letter country code, for example, "RU", "US". $geoip_city_country_code3; - three-letter country code, for example, "RUS", "USA". $geoip_city_country_name; - the name of the country, for example, "Russian Federation", "United States". $geoip_region; - the name of region (province, region, state, province, federal land, and the like), for example, "Moscow City", "DC". $geoip_city; - the name of the city, for example, "Moscow", "Washington". $geoip_postal_code; - postal code.   PS: 我只是根据南方电信,北方网通来区分的~~ 我是北京用户访问的是默认页面是因为我没有 把 22 数字填加到 配置文件里。我是为了方便测试!大家要是用在生产上要把 22加到    if ($geoip_region ~ "(05|08|09|10|12|17|18|19|20|24|25|26)")     网通里~  不过 开源的 geoip 还是有些不准确的~~~只能给他  75 分~~
本文出自 “linuxer” 博客,请务必保留此出处http://deidara.blog.51cto.com/400447/198469
标签:
地区性,负载均衡

极乐门资源网 Design By www.ioogu.com
极乐门资源网 免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
极乐门资源网 Design By www.ioogu.com

评论“Nginx geoip模块实现地区性负载均衡”

暂无Nginx geoip模块实现地区性负载均衡的评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。