Nginx配置限制IP访问

面对垃圾留言和暴力破解,我们可以封禁IP,前文介绍过Apache环境使用.htacess来屏蔽IP,Nginx也可以做到。前提是我们已经搭建好了LNMP环境。

我们来到/usr/local/nginx/conf/vhost网站目录,具体路径可能有点区别,可以用whereis nginx找到你的nginx网站目录。打开vhost下nginx.conf配置文件,找到server然后在server"{}",在这个大括号内加入deny IP地址是限制某IP地址访问;allow IP地址是只允许某IP地址访问。

    server {
        listen       8080;
        #server_name  localhost;
        server_name  182.243.41.257;
        root   "D:/qiPaiBackend/backend/web";
        error_page   500 502 503 504  /50x.html;
        # 配置ip限制策略
		# 允许部分ip访问
		allow 182.243.41.257;
		allow 127.0.0.1;
		 # 禁止其余ip访问
		deny all; 
        location = /50x.html {
            root   html;
        }
        location / {
            index index.php index.html error/index.html;
            try_files $uri $uri/ /index.php$is_args$args;
        }
        
        location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_connect_timeout 600;
            fastcgi_read_timeout 600;
            fastcgi_send_timeout 600;
            include        fastcgi_params;
        }
    }

 

上图所示是屏蔽单个IP,注意后面的分号,修改保存后重载nginx服务service nginx reload。如果生效该IP访问网站会出现403 forbidden。

#封IP段比如从192.0.0.1到192.0.0.254的命令是
deny 192.0.0.0/24这其实就是把192.0.0.x这整个C端屏蔽了。

还有一种方法,在nginx的conf目录下面新建配置文件为blocksip.conf:

输入要屏蔽的地址deny 24.112.16.30; 保存一下。

在nginx的配置文件nginx.conf中加入:include blocksip.conf;

重启一下nginx的服务:service nginx reload或/usr/local/nginx/sbin/nginx -s reload 就可以生效了。

blocksip.conf:的格式还有许多种,可以配置只允许的IP访问或者IP段访问:
# block all ips
deny all;
# allow all ips
allow all;

如果你想实现这样的应用,除了几个IP外,其他全部拒绝,在ip.balcklist中这样写

allow 1.1.1.1;
allow 1.1.1.2;
deny all;

你可能感兴趣的:(php)