关于在线本地调试的方法,玉伯的文章《在线本地调试大观》已经分析叙述非常全面了。这里提供另外一种思路,供前端工程师们参考。我觉得可能是最简单的方式,也容易扩展。
这个思路是使用ngnix来作普通的正向代理。配置如下:
server {
listen 8000; #监听端口,这里监听8000
#server_name localhost;
resolver 8.8.8.8; #域名解析服务器
location / {
#这里指定本机代码仓库的静态文件目录,这里不设置就是直接取线下服务器的文件
root /Users/xp/projects/meituan.www/static;
#取消默认文档
#index index.html index.htm;
#如果访问的是文件夹,就是找默认文档,代理到原地址去找
if ($request_uri ~* \/$ ){
proxy_pass http://$http_host;
}
#如果目标url对应的文件没找到,就代理到原地址去找
if (!-e $request_filename) {
proxy_pass http://$http_host;
}
#如果对应的host是CDN服务器,就代理到线下的CDN测试服务器,以下的s1是一个意思
if ($http_host = s0.meituan.net){
proxy_pass http://s0.xpmt.meituan.com;
}
if ($http_host = s1.meituan.net){
proxy_pass http://s1.xpmt.meituan.com;
}
#如果对应的host是Combo服务器,就代理到线下的Combo服务器
if ($http_host = c.meituan.net){
proxy_pass http://c.xpmt.meituan.com;
}
}
}
浏览器如Firefox/Chrome/IE等设置代理服务器为localhost,端口为8000即可。
线下服务器使用的是Git仓库中的代码,实时调试线上页面,如果测试OK了,即可push到远程仓库立即部署上线。
TODO: