nginx默认捕获所有的configuration

我们使用nginx来为dynamic内容提供静态内容和apache。

我已经定义了一个默认的服务器configuration为:

#Set a default server that simply proxies all requests to apache server { listen 80 default_server; server_name _; location / { proxy_pass http://127.0.0.1:8080; } } 

如果由于某种原因导致server_name不匹配,是否将所有代理都转换为apache的最佳方式?

是的,这是最好的和唯一明智的方式。 你甚至可以完全省略servername。

如果您使用SSL,那么您需要一些额外的configuration来pipe理default_server – 证书和密钥(可以自签名)。

 server { server_name _; listen 80 default_server; listen 443 ssl default_server; ssl_certificate <path to cert>; ssl_certificate_key <path to key>; location / { proxy_pass http://127.0.0.1:8080; } } 

Nginx将尝试在IP /端口匹配的default_server上接受SSL连接。 如果这样的服务器缺less证书/密钥,nginx会删除连接。 它不会尝试其他服务器。 所以不要忘记证书/密钥。