Nginx禁⽌IP访问只允许域名访问
我们在使⽤的时候会遇到很多的恶意IP攻击,这个时候就要⽤到Nginx 禁⽌IP访问了。下⾯我们就先看看Nginx的默认虚拟主机在⽤户通过IP访问,或者通过未设置的域名访问(⽐如有⼈把他⾃⼰的域名指向了你的ip)的时候⽣效最关键的⼀点是,在server的设置⾥⾯添加这⼀⾏:
listen 80 default;
后⾯的default参数表⽰这个是默认虚拟主机。
Nginx 禁⽌IP访问这个设置⾮常有⽤。
⽐如别⼈通过ip或者未知域名访问你的⽹站的时候,你希望禁⽌显⽰任何有效内容,可以给他返回500.⽬前国内很多机房都要求⽹站主关闭空主机头,防⽌未备案的域名指向过来造成⿇烦。就可以这样设置:
简单直接的修改⽅法:
修改f ⽂件
修改成
server {
listen 80;
server_name www.jb51;  #这⾥是你⾃⼰指定的域名
...
}
再在上个server后继续添加⼀段:
就是为了访问默认⽹站直接返回403
server {
listen 80 default_server;
server_name _;
return 403;
这⾥是在接收到ip访问或⾮指定域名访问时会返回403错误
下⾯的⼀些⽐较详细的介绍:
server {
listen 80 default;
return 500;
}
也可以把这些流量收集起来,导⼊到⾃⼰的⽹站,只要做以下跳转设置就可以:
server {
listen 80 default;
rewrite ^(.*) www.jb51 permanent;
}
按照如上设置后,确实不能通过IP访问服务器了,但是在应该⽤中出现当server_name后跟多个域名时,其中⼀个域名怎么都⽆法访问,设置如下:
server {
listen 80;
server_name www.jb51 jb51
}
没更改之前,通过server_name 中的www.jb51 jb51均可访问服务器,加⼊Nginx 禁⽌IP访问的设置后,通过jb51 ⽆法访问服务器了,www.jb51可以访问,⽤ Nginx -t 检测配置⽂件会提⽰warning:
[warn]: conflicting server name “jb51” on 0.0.0.0:80,
ignored
the configuration file /usr/local/Nginx/conf/
configuration file /usr/local/Nginx/conf/Nginx.
conf test is successful
tomcat虚拟主机怎么设置最后通过在listen 80 default;后再加server_name _;解决,形式如下:
#禁⽌IP访问
server
{
listen 80 default;
server_name _;
return 500;
}
或者
server {
listen 80 dufault;
server_name _;
rewrite ^(.*) www.jb51 permanent;
}
#禁⽌IP访问
server {
listen 80 default;
server_name _;
server_name www.jb51 jb51
return 500;
}
这样,通过jb51就能访问服务器了。
第⼀种情况:访问A站定向到B站
server {
server_name www.jb51 ;
rewrite ^(.*) www.jbzj$1 permanent;
}
第⼆种情况:不是访问A站的全部重定向到指定页⾯server {
server_name www.jb51;
if ($host != 'jb51') {
rewrite ^/(.*)$ www.jbzj/$1 permanent;
}
}
如果写在第⼀个server段
使⽤IP访问时也将被重定向

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。