密码保护Nginx中的Django URL模式

时间:2014-08-12 16:32:20

标签: django nginx ubuntu-12.04 gunicorn

我试图根据URL密码保护我的Django网站的某个部分。说我已经获得了我想要密码保护的URL /protected/section/(该URL也将采用URL参数,但我认为它们将在所有这些之后进行处理)。

所以我已将此添加到我的Nginx配置中:

location /protected/section/ {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.demo.htpasswd;
}

我已经生成了.htpasswd这样的文件:

htpasswd -c /etc/nginx/.demo.htpasswd demo

所以现在当我访问http://mysite/protected/section/时,我会收到密码提示,但是当我输入密码时,我收到404错误。我需要添加另一行,以便像所有其他请求一样将请求传递给Django(通过Gunicorn)吗?我认为在认证之后,请求将被视为没有限制的情况。

1 个答案:

答案 0 :(得分:0)

因此,以下是我myapp.conf文件中适用的相关位:

upstream appinstances {
  server 127.0.0.1:5001;
}

server {
  listen     80;
  server_name  myapp.example.com;
  location ^~/manage/ {
    satisfy any;
    auth_basic            "Restricted Area";
    auth_basic_user_file  /etc/linotp2/admins;
    deny all;

    proxy_pass              http://appinstances;
    proxy_redirect          off;
  }
... # the rest of the config
}

我把头撞了一会儿。希望它有所帮助。