利用Nginx_geo模块实现CDN调度的配置

1 篇文章 0 订阅

引入Nginx的Geo模块
geo指令使用ngx_http_geo_module模块提供的。默认情况下,nginx有加载这个模块除非人为的 --without-http_geo_module
ngx_http_geo_module模块可以用来创建变量,其值依赖于客户端IP地址。使用方法如下:

geo指令
语法: geo [$address] $variable { ... }
默认值: —
配置段: http

定义从指定的变量获取客户端的IP地址。默认情况下,nginx从$remote_addr变量取得客户端IP地址,但也可以从其他变量获得。

在/usr/local/nginx/conf/nginx.conf文件内加入以下配置
geo $geo {
        ranges;                    #使用以地址段的形式定义地址,这个参数必须放在首位      
        default dn;
        include ip_geo.conf;
    }

        upstream wuhan.server {
            server      192.168.155.98:8081;
        }

        upstream shanghai.server {
            server      192.168.155.98:8082;
        }

        upstream shenzhen.server {
            server      192.168.155.98:8083;
        }

        upstream dn.server {
            server      192.168.155.98:8084;
        }

 server {
        listen       80;
        server_name  192.168.155.98 jiaoyu.media.cloudp.cc;
            root     html;
            index index.html index.htm;
        location ~* \.xml$ {
            root /data/video;
        }
        location / {
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For 
            $proxy_add_x_forwarded_for;
            proxy_pass http://$geo.server$request_uri;
        }
    }

    server {
        listen 8081;
        server_name 192.168.155.98;
        location  /  {
            rewrite ^ $scheme://192.168.155.106$request_uri? permanent;
        }
    }

    server {
        listen 8082;
        server_name 192.168.155.98;
        location  /  {
                rewrite ^ $scheme://192.168.155.107$request_uri? permanent;
       }
    }

server {
        listen 8083;
        server_name 192.168.155.98;
        location  /  {
                rewrite ^ $scheme://192.168.155.109$request_uri? permanent;
       }
    }

    server {
        listen 8084;
        server_name 192.168.155.98;
        location  /  {
                rewrite ^ $scheme://jiaoyu.dn.cloudp.cc$request_uri? permanent;
        }
}

在/usr/local/nginx/conf/文件下增加ip_geo.conf文件,用来对IP区域进行划分,注意划分的时候不能出现IP重叠现象,不然会出现”overlaps”报错

vim /usr/local/nginx/conf/ip_geo.conf

192.168.128.6-192.168.128.10 wuhan;
192.168.128.11-192.168.128.15 shanghai;
192.168.128.16-192.168.128.20 shenzhen;

也可以以10.2.0.0/16 wuhan;这种形式来进行IP分段,这样在nginx.conf中就不不需要使用range指令来进行定义

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值