我在端口 8002 上运行一个测试服务器,在端口 8001 上运行一个生产服务器
我希望测试版服务器提供 beta.xxx.com、fr.beta.xxx.com、en.beta.xxx.com 等网址,而生产服务器则提供 xxx.com、fr.xxx.com、en.xxx.com 等网址
这是我的 nginx 配置:
server {
listen 80;
server_name ~.* beta.xxx.com$;
access_log logs/xxx_beta.access.log main;
root html;
location / {
proxy_pass http://127.0.0.1:8002;
}
}
server {
listen 80;
server_name ~.* xxx.com$;
access_log logs/xxx.access.log main;
root html;
location / {
proxy_pass http://127.0.0.1:8001;
}
}
然而,所有流量都流向测试服务器。
我尝试了各种模式:^-.*
代替~
,以 结尾$
或不,... 都不起作用。我没有忘记service nginx reload
在配置更改之间。任何帮助都值得赞赏!
答案1
这里不需要领先的正则表达式——服务器模式匹配通常不使用它。我会运行:
# qa
server {
server_name .beta.example.com;
}
# prod
server {
server_name .example.com;
}
这样一来,在 beta.example.com 中寻找的所有内容都会进入 QA 网站,而其他任何内容都会进入主网站。