密码保护链接在Django和Nginx中提供404

密码保护链接在Django和Nginx中提供404,django,nginx,Django,Nginx,我想通过将以下内容添加到我的nginx.conf中,对Django网站的单个页面进行密码保护(我不想使用Django的身份验证系统,我已经在网站的其他部分使用该系统;这是一个不相关的一次性系统): location /myprivatepage { auth_basic "Private page"; auth_basic_user_file /etc/nginx/.htpasswd; } 并将用户和密码放入/etc/nginx/.htpasswd。当我将浏览器指向/myp

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

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

如果我对上面的行进行注释,我可以正确地作为来宾访问页面。我做错了什么?

我发现了问题所在。我需要重复这两句话:

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

(已在
/location指令中)在
/myprivatepage location
说明中。

对于您来说并不明显,您的请求不会进入django后端,并试图由某个静态文件
/your/root/myprivatepage
/your/root/myprivatepage/index.html
等提供服务?如果您想使用此身份验证机制,您应该复制此位置内的所有后端配置(
proxy\u pass
uwsgi\u pass
或您正在使用的任何配置)。谢谢-不,在您指出之前它并不明显(仍在学习,一点一点)。在你发表评论之前,我发现了这一点:它为我指明了正确的方向。