Nginx域名未按预期重定向的问题咨询
Nginx配置问题解答
问题1:为何第2个server块对「dashboard-test-deb11/」不生效?
- 你的第2个server块未指定
listen指令,默认仅监听80端口(HTTP协议)。如果你实际访问的「dashboard-test-deb11/」是通过HTTPS(443端口)发起的请求,这个server块根本不会参与请求匹配。 - 即便用HTTP访问
http://dashboard-test-deb11/,若客户端本地DNS配置了域名搜索域,请求的Host头可能被自动补全为dashboard-test-deb11.company.com,同样不会匹配到这个server块。
问题2:为何第3个server块的server_name为dashboard-test-deb11.company.com,却能匹配「dashboard-test-deb11/」?
- 第3个server块配置了
listen 443 ssl default_server,这代表它是443端口下的默认服务器。当Nginx在443端口收到请求,且没有其他server块的server_name能匹配请求的Host头时,就会将请求交给这个默认服务器处理。 - 你访问「dashboard-test-deb11/」时,请求的
Host头是dashboard-test-deb11,而443端口下没有任何server块的server_name设置为该值,因此Nginx会自动用这个默认server块处理请求,最终代理到localhost:3000。
内容的提问来源于stack exchange,提问作者Yogesh
相关产品推荐
相关产品推荐

