Nginx IP访问控制,只允许指定的IP地址访问,其他ip禁止访问或者屏蔽指定ip访问

前端之家收集整理的这篇文章主要介绍了Nginx IP访问控制,只允许指定的IP地址访问,其他ip禁止访问或者屏蔽指定ip访问前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

需求:我需要一个只允许指定的ip访问django服务,其他ip访问,直接拒绝服务。

经过一番查询,发现可以利用Nginx进行ip访问控制,屏蔽其他ip访问,只允许在白名单的ip才可以访问。

修改站点Nginx配置文件,比如我的文件是:admin.conf

在server或者location配置段中进行配置,通过allow和deny参数来控制访问。

allow:允许访问ip

deny:拒绝访问ip

配置信息如下:
Nginx路径:/etc/Nginx/conf.d/chenxm.conf

server {
     listen 80;

     server_name admin.chenxm.cc;
     location / {
         proxy_pass http://0.0.0.0:10000;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         allow 222.222.222.222;
         deny  all;
     }

}

allow 222.222.222.222;     表示允许222.222.222.222这个ip访问

deny  all    表示拒绝所有ip的访问。

配置文件修改好之后,检查Nginx配置文件的语法是否正确。

[root@localhost ~]# Nginx -tc /etc/Nginx/Nginx.conf 
Nginx: the configuration file /etc/Nginx/Nginx.conf Syntax is ok
Nginx: configuration file /etc/Nginx/Nginx.conf test is successful

相关用法

如果反过来使用:

allow all;     表示允许所有ip访问

deny  222.222.222.222    表示拒绝222.222.222.222这个ip访问

最后:

用户ip不是222.2222.222.222来访问,Nginx直接返回一个403页面用户

高级知识:

Nginx作为web服务的时候也会有安全功能的模块,可以通过修改配置文件的方式来设置允许和拒绝的IP来访问。有些IP被设置拒绝访问后,访问的时候会出现403,也就是拒绝访问。不过由于IP的数量庞大,很多时候都不会指定详细的IP地址,应该会使用网段的方式。比如192.168.0.*,这样的方式进行配置 。

猜你在找的Linux相关文章