我无法使用nginx来查看我的网站。我想知道是否有人可以帮忙。
我使用htpasswd创建了一个密码。它创建了一个名为htpasswd的文件,它存储在Conf / / nginx.conf
旁边 Conf目录是hello_world
的兄弟姐妹,以及scta
路径中所见的root
文件夹的子代。
重新启动服务器后,我的浏览器会要求我输入密码。我输入信息,对话框消失,浏览器只是说没有授权。之后,浏览器甚至没有给我机会重新输入我的用户名和密码。
我不确定我做错了什么。
更新,我意识到我实际上已成功通过,因为当我输入错误的密码时,我收到401错误。但是当我输入正确的密码时,我正在移动401错误而不是403错误。
server {
listen 28005;
passenger_enabled on;
root /home/me/app/scta/hello_world/public;
server_name localhost;
location / {
auth_basic "closed site";
auth_basic_user_file conf/htpasswd;
}
}
}
答案 0 :(得分:0)
您必须检查remote_user
是否存在,如果它存在,则表示它已经过身份验证,因此假设用户是&#34; admin&#34;,您将执行以下检查。< / p>
server {
listen 28005;
passenger_enabled on;
root /home/me/app/scta/hello_world/public;
server_name localhost;
location / {
auth_basic "closed site";
auth_basic_user_file conf/htpasswd;
if ($remote_user ~ ^$) { break; }
set $ok "no";
if ($remote_user = 'admin') { set $ok "yes"; }
if ($ok != "yes") {
return 403;
}
}
}