Nginx禁止非指定域名、IP访问的原理就是添加一条default_server的规则,形如:
1 2 3 4 5 6 7 8 9 |
server { listen 80 default_server; listen 443 ssl default_server; server_name _; ssl_certificate <path to cert>; ssl_certificate_key <path to key>; return 403; } |
其中:
- listen 80 default_server:指定该server配置段为80端口的默认主机,即对于非绑定的域名访问服务器时,匹配不到绑定的域名后,会默认使用该段配置。
- listen 443 ssl default_server:指定该server配置段为80端口的默认主机,即对于非绑定的域名访问服务器时,匹配不到绑定的域名后,会默认使用该段配置。
- server_name:此处可以换成任意其他无效字符或无效的域名,表示该server配置段不会被正常访问到。
- ssl_certificate、ssl_certificate_key:给SSL的443端口对应的证书,不配的话会报错。
- return 403:对于非绑定的域名访问服务器时,返回403错误。
return 403也可以换成rewrite,来实现将所有未授权域名及IP访问跳转到指定网页,如:
1 |
rewrite ^(.*) http://www.fuckyou.com permanent; |
转载时请保留出处,违法转载追究到底:进城务工人员小梅 » Nginx禁止非指定域名、IP访问