【问题标题】:Password protected link gives 404 in Django and Nginx受密码保护的链接在 Django 和 Nginx 中给出 404
【发布时间】:2020-11-05 01:39:34
【问题描述】:

我想用密码保护我的 Django 网站的单个页面(我不想使用 Django 的身份验证系统,我已经在我网站的其他部分使用该系统;这是一个不相关的一次性)将此添加到我的 nginx.conf:

location /myprivatepage {
auth_basic "Private page";
auth_basic_user_file /etc/nginx/.htpasswd;
}

并将用户名和密码输入/etc/nginx/.htpasswd。当我将浏览器指向 /myprivatepage 时,浏览器确实会询问用户名和密码。成功通过身份验证后,我收到 404 错误:

404 Not Found
nginx/1.14.2

如果我评论上面的行,我可以正确地以访客身份访问该页面。我做错了什么?

【问题讨论】:

  • 在这个位置你的请求不会发送到 django 后端并试图由一些静态文件 /your/root/myprivatepage/your/root/myprivatepage/index.html 等提供服务,这对你来说不是很明显吗?如果您想使用此身份验证机制,您应该复制此位置中的所有后端配置(proxy_passuwsgi_pass 或您正在使用的任何内容)。
  • 谢谢 - 不,在您指出之前并不明显(仍在学习,一点一点)。在您发表评论之前,我发现了这个:serverfault.com/questions/917226/…,它为我指明了正确的方向。

标签: django nginx


【解决方案1】:

我找到了问题。我需要重复这两行:

include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;

(已经在/ location instruction 中)在/myprivatepage location 指令中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 2020-02-19
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 2021-11-04
    相关资源
    最近更新 更多