使用nginx和gunicorn限制在django中通过ip访问管理URL

jcu*_*uot 4 django nginx gunicorn

我试图通过在nginx中使用简单的基于主机的访问控制来限制访问我的django应用程序的管理部分.不幸的是,nginx似乎没有遵守配置请求:

这是我在nginx中特定部分的设置:

# gunicorn setup
location / {
    proxy_pass http://127.0.0.1:8000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 }


 location /admin/ { # restrict access to admin section
    allow 192.168.0.1;
    deny all;
 }
Run Code Online (Sandbox Code Playgroud)

这仍然会阻止我的IP 192.168.0.1.我究竟做错了什么?有没有其他方法可以阻止访问django应用程序的/ admin /部分?

jcu*_*uot 10

我通过使用以下内容替换/ admin/location找到了解决此问题的方法:

location ^~ /admin/ { # restrict access to admin section
    proxy_pass http://127.0.0.1:8000;
    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 192.168.0.1;
    deny all;
}
Run Code Online (Sandbox Code Playgroud)

我希望这能在互联网上节省一些长时间的搜索.我很感激提供更好解决方案的答案.