现有如下域名需要绑定,才能进行测试
edu.test.com/lab 前端应用 部署在A机器 112.22.33.44
edu.test.com/labadmin 后端应用 部署在B机器 112.22.33.45
按我们以前思路,需要测试,都是直接改host文件,例如:
112.22.33.44 edu.test.com 或 112.22.33.45 edu.test.com
但上面两个是不能同时存在,不然只会有一个生效,由于业务特殊性,不能用IP直接测试,还得用域名
假设我们就采用配置host的方法达到我们的目的
我们需要在访问前端应用时,配置前端host,同时我们需要把后端应用host注释掉
112.22.33.44 edu.test.com
#112.22.33.45 edu.test.com
接下来浏览器访问 edu.test.com/lab
同理,我们需要访问后端应用时,配置后端host,同时我们需要把前端应用host注释掉
#112.22.33.44 edu.test.com
112.22.33.45 edu.test.com
接下来浏览器访问 edu.test.com/labadmin
以上方式单独测试前端应用或者后端应用时非常方便,但是前端和后端分不开,一些数据的交互需要来回访问,这个时候用这种方式就非常麻烦了 ,
除非另一个测试人员和你一起测试,一个前端,一个后端,需要干嘛相互通知一声就好了
我要介绍的就是通过nginx来解决此问题,此思路来自我的开发同事何丽彬童鞋,在此掌声送给他
上面介绍到的配置host注释掉不需要了,我们配置一个新的host
127.0.0.1 edu.test.com
我的是mac系统,我的nginx配置文件路径是
/usr/local/etc/nginx/nginx.conf
配置nginx转发规则,
server {
listen 80; server_name edu.test.com;
location /lab {
proxy_pass http://112.22.33.44/lab;
}
location /labadmin {
proxy_pass http://112.22.33.45/labadmin; } }
此处我们用到的是80端口,需要root用户权限才能启动,需要注意的是此端口监听的IP必须是
0.0.0.0 或者是127.0.0.1 ,当然这个不是固定的,需要和host配置保持一致
$ sudo /usr/local/bin/nginx 或者已运行情况下重新载入 $ sudo /usr/local/bin/nginx -s reload
接下来,我们即可以用浏览器访问
又可以访问
首先,我们配置了本地host,
127.0.0.1 edu.test.com
edu.test.com 指向了本地127.0.0.1 ,nginx监听80端口
/lab 开头访问的,暂且就叫开头吧,这个是匹配规则 访问的都会指向http://112.22.33.44/lab;
/labadmin 开头访问的,暂且就叫开头吧,这个是匹配规则 访问的都会指向 http://112.22.33.45/labadmin;
大功告成,顺利测试,完美上线,此处域名及IP都是假设数据,但是真实数据是我已经验证过的
这是个好的思路好的经验,并没有让大家学到什么高深的内容