我试图通过在nginx中使用简单的基于主机的访问控制来限制对我的django应用程序的admin部分的访问。 不幸的是,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;
}
这仍然会阻止我的ip 192.168.0.1。 我究竟做错了什么? 有没有其他方法可以阻止访问django应用程序的/ admin /部分?
答案 0 :(得分:9)
我通过将/ 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;
}
我希望这会在互联网上节省一些长时间的搜索。 我很感激提供更好解决方案的答案。