禁止ip直接访问网站

由于ip暴露出来,很容易使得服务器被攻击,因此需要禁止ip直接访问网站,我从度娘上找到了一些配置,并且试验了一番,特此将其整合一下,以应对各种

禁止ip访问,报错处理

有时候我们需要直接对通过ip进行访问的网站进行屏蔽,因此需要配置nginx.conf文件:

1
2
3
4
5
6
7
server{
listen 80;
server_name localhost;
if ( $host = '192.168.1.10' ){
return 403;
}
}

if后面需要有空格,否则会报错

禁止ip访问,跳转处理

有时候不希望直接报错,而希望跳转到自己想要的页面(一般是跳转到ip绑定的对应域名上),因此我们也需要做相应的配置,而如下代码是经测试后确实有效的代码:

1
2
3
4
5
6
7
server{
listen 80;
server_name localhost;
if ( $host = '192.168.1.10' ){
return 301 http://www.yechuchen.cn;
}
}

网上代码多为如下,但是经测试无效,不知是我配置没有做好抑或是其他原因而导致的:

1
2
3
4
5
6
7
8
9
server{
listen 80;
server_name localhost;
if ( $host = '192.168.1.10' ){
rewrite ^(.*) http://www.yechuchen.cn permanent;
#rewrite ^/(.*)$ http://www.yechuchen.cn/$1 permanent;
rewrite http://www.yechuchen.cn permanent;
}
}