在Apache中,如果1)我有多个虚拟主机侦听一个端口,2)如果没有请求匹配任何虚拟主机,则第一个虚拟主机将是应答请求的虚拟主机 。 例如,给我有这个configuration:
<VirtualHost *:8080> ServerName www.fallbacksite.com:8080 ServerAlias *.fallbacksite.com # ... </VirtualHost> <VirtualHost *:8080> ServerName www.specific-site.com:8080 ServerAlias *.specific-site.com # ... </VirtualHost>
然后:
这是我试图用nginx实现的最后一个场景,但是在nginx.org网站上看不到任何关于这个的东西。 我尝试了过度渴望的通配符,但它抱怨说这是无效的。
你将如何在nginx中做上述configuration? 提前致谢!
如果你只想要一个特定的虚拟主机来回答请求,你可以简单地做如下操作。 添加(或更改)监听行以在末尾包含default_server 。 这将在不更改URL的情况下为该虚拟主机提供服务。
server { # Add default_server for any unresolved request listen 80 default_server; }
如果您想在用户点击hellohowareyou.com时执行redirect,则可以添加新的server块并redirect到要使用的主机:
server { # Add default_server only here for any unresolved request listen 80 default_server; server_name _; rewrite ^ http://fallbacksite.com$request_uri permanent; }