我有两个网站,一个是server1.example.com
,另一个是server2.example.com
。所以我在nginx_config
server{
listen 80;
server_name server1.example.com;
location / {
proxy_pass http://127.0.0.1:9090;
}
}
server{
listen 80;
server_name server2.example.com;
location / {
proxy_pass http://127.0.0.1:9091;
}
}
效果很好
如果我删除其中之一,则结果不符合我的期望。
当我删除server2.example.com
server{
listen 80;
server_name server1.example.com;
location / {
proxy_pass http://127.0.0.1:9090;
}
}
# server{
# listen 80;
# server_name server2.example.com;
# location / {
# proxy_pass http://127.0.0.1:9091;
# }
# }
当我访问server2
时,我会得到404
或500
http代码。但是我得到了server1
为什么?
答案 0 :(得分:0)
server_name
可以使用不同的虚拟名称,而对于nginx,则是查看服务器的哪个部分。
如果没有与之匹配的部分,则nginx
将使用第一个声明的服务器。在这种情况下,您是哪个server1.example.com
。或者,您可以使用default_server
关键字来覆盖它。
server{
listen 80 default_server;
server_name server1.example.com;
location / {
proxy_pass http://127.0.0.1:9090;
}
}
您应该在下面的网址中查看更多详细信息