更有效的进行前后台联调-让同一域名上的不同cgi访问不同的ip

在日常的前后台联调中,我们都习惯用host的方式来使某个域名的cgi都访问测试环境,然而这有一个显而易见的问题:
如果一个域名下有十几个CGI,而这次提测的只有其中的一个,那么要想整个环境可用,你除了要保证这个CGI可用之外,和你完全无关的十几个CGI也要全部调通。

很纠结,不是吗?

其实我们有更好的方式,那就是用反向代理,我们可以用nginx来实现。

以 appsupport.qq.com 这个域名举例,比如本次提测的cgi路径是:

/cgi-bin/appstage/send_topic.cgi

这个cgi要访问测试环境: 172.16.197.186;而这个域名上的其他cgi都要访问正式的外网环境(如10.137.148.124)。

http://nginx.org/en/download.html下载windows版本的nginx,解压到C盘,然后修改他的nginx.conf文件如下:

#测试环境
upstream test_env {
    server 10.6.207.119;
}
 
#预发布环境
upstream pre_env {
    server 172.16.197.186;
}
 
#appsupport外网环境
upstream appsupport_release_env {
    server 10.137.148.124;
}
 
server {
    listen       80;
    server_name  appsupport.qq.com;
 
    #不写写这两行的话,CGI取HTTP_HOST,会取到upstream的名字
    server_name_in_redirect off;
    proxy_set_header Host $host;
 
    location ~ /cgi-bin/appstage/send_topic.cgi {
        proxy_pass http://pre_env;
    }
 
    location / {
        proxy_pass http://appsupport_release_env;
    }
}



双击执行nginx.exe;如果要停止,可以在命令行下执行:

1
nginx.exe -s stop

然后修改你的本机host如下:

1
127.0.0.1   appsupport.qq.com

这样,在浏览器中直接输入url,ngx会自动根据url路径来选择访问的ip,如此岂不快哉!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值