Nginx多IP环境如何禁止空主机头访问
军哥,又得麻烦你了。用原先禁止访问空主机头的方法在绑定多个IP的环境下不起任何作用。还是可以直接用IP访问,也无法禁止域名恶意解析指向。请教军哥Nginx如何在绑定多个IP的环境下禁止空主机头访问?备注:每个IP下均已开设虚机。感谢!
以下是我试过无效的方法,但单个IP下是有效的。
nginx.conf添加替换为以下:
server
{
listen 80 default_server;
#listen [::]:80 default_server ipv6only=on;
server_name _;
#index index.html index.htm index.php;
#root/home/wwwroot/default;
return 403; 这就是默认虚拟主机,所有没添加的域名,所有ip都到这里
是替换不是添加,default_server只能有一个,不起作用肯定你的配置有问题 经过多种方法测试,我发现在多IP和单IP环境下的配置是不一样的,如下:
(1)多IP情况下需分别再添加两个不同IP地址的server:
server
{
listen 198.46.197.201:80 default_server;
server_name "";
return 444;
}
server
{
listen 192.227.162.35:80 default_server;
server_name "";
return 444;
}
(2)单IP情况下仅需修改为以下即可:
listen 80 default_server;
server_name _;
return 444;
NOTE:需特别说明的是,多IP下使用listen *:80 default_server;是无效的,一开始我用的可以,但不知道怎么的后来又失效了,得单独添加才行。
估计有不少人也需要这个,特意编辑帖子发出,希望对大家有用!
[ 本帖最后由 半岛小生 于 2018-5-3 19:00 编辑 ] 正需要,谢谢分享
页:
[1]