如果我已经有一堆虚拟主机,我怎么能创build一个虚拟主机来处理与任何虚拟主机不匹配的请求? (即通过IP访问,另一个连接到IP的域,etc。etc等)
服务器名称 _; 并在侦听configuration的default_server是你在找什么。
例:
server { listen 80 default_server; server_name _; root /var/www/default; (or wherever) }
如果您使用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>; return 404; # or whatever }
Nginx将尝试在IP /端口匹配的default_server上接受SSL连接。 如果这样的服务器缺less证书/密钥,nginx会删除连接。 它不会尝试其他服务器。 所以不要忘记证书/密钥。
server { listen 80 default_server; listen 443 ssl default_server; listen [::]:80 default_server; listen [::]:443 ssl default_server; server_name _; root /path/to/default; }
这些条目分别用于端口80(HTTP),端口443(HTTPS),端口80 IPv6和端口443 IPv6。
你可以考虑添加log_not_found off;
避免为找不到的页面添加日志条目。