nginx禁止未绑定的域名访问 return 444
禁止所有未授权域名及IP访问添加一条default_server的规则,如下:
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 ss default_server: 指定该 server 配置段为 443 端口的默认主机,即对于未绑定的域名指向你的服务器时,匹配不到你配置的虚拟主机域名后,会默认使用这个虚拟主机。
server_name : 此处的可以换成任意其他无效字符或无效的域名,表示该 server 配置不会被正常访问到。
*ssl_certificate、ssl_certificate_key:ssl证书,随便弄个证书就可以了,不然nginx加载配置会报错。
*return 403:设置默认ip的80、443端口下的所有为绑定域名访问后,返回403错误。
将所有未授权域名及IP访问跳转到指定网页
server {
listen 80 default_server;
server_name _;
rewrite ^(.*) http://yizuotu.net permanent;
}
nginx禁止未绑定域名访问;nginx无效域名;return 444;该网页无法正常运作,未发送任何数据
server {
listen 80 default_server;
server_name _;
return 404;
}
其实这个名字没有什么特别的,它仅仅是一个许多无效的域名中的一个代表,与任何真实的名字永远不会相交。其它无效的名称,如“ - “ 和” !@# “也可同样使用。
default_server:nginx的虚拟主机是通过HTTP请求中的Host值来找到对应的虚拟主机配置,如果找不到呢?那 nginx就会将请求送到指定了 default_server 的 节点来处理
对于未绑定的域名指向你的服务器时,匹配不到你配置的虚拟主机域名后,会默认使用这个虚拟主机,然后直接返回404。
配置nginx.conf文件
在server前面添加如下代码,然后一旦访问未绑定的域名,服务器立马返回502,当然也可以自定义其它的。
server {
listen 80 default_server;
return 502;
}
下面是虚拟主机配置,主要是上面的代码生效。
server {
listen 80;
server_name www.yizuotu.com;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_set_header Host $host:$proxy_port;#proxy_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://myserver;
}
error_page 404 /yizuotu_404.html;
location = /yizuotu_40x.html {
}
error_page 500 502 503 504 /yizuotu_50x.html;
location = /yizuotu_50x.html {
}
}