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

    2019年10月12日 14:45   120 人阅读  0 条评论   编辑

需求:我需要一个只允许指定的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.*,这样的方式进行配置 。

本文地址:http://www.chenxm.cc/article/924.html
版权声明: 本文为原创文章,版权归  陈新明  所有,欢迎分享本文,转载请保留出处!
PREVIOUS: python2 安装pandas提示错误:Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
NEXT: selenium 保存网站的验证码图片
 相关文章  关键词:

 发表评论

还没有留言,还不快点抢沙发?