Authentication 使用nginx限制访问
我在使用nginx查看我的网站时遇到了需要授权的问题。我想知道是否有人能帮忙 我使用htpasswd创建了一个密码。它创建了一个名为htpasswd的文件,该文件直接存储在nginx.Conf旁边的Conf/中 Conf目录是Authentication 使用nginx限制访问,authentication,nginx,Authentication,Nginx,我在使用nginx查看我的网站时遇到了需要授权的问题。我想知道是否有人能帮忙 我使用htpasswd创建了一个密码。它创建了一个名为htpasswd的文件,该文件直接存储在nginx.Conf旁边的Conf/中 Conf目录是hello_world的同级目录,也是下面列出的root路径中的scta文件夹的子目录 重新启动服务器后,我的浏览器要求我输入密码。我输入信息,对话框消失,浏览器简单地说“未授权”。之后,浏览器甚至没有给我重新输入用户名和密码的机会 我不确定我做错了什么 更新后,我意识到我
hello_world
的同级目录,也是下面列出的root
路径中的scta
文件夹的子目录
重新启动服务器后,我的浏览器要求我输入密码。我输入信息,对话框消失,浏览器简单地说“未授权”。之后,浏览器甚至没有给我重新输入用户名和密码的机会
我不确定我做错了什么
更新后,我意识到我实际上成功地通过了,因为当我输入错误的密码时,我会得到一个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;
}
}
}
您必须检查
remote\u用户是否存在,如果存在,则表示该用户已授权,因此假设该用户为“admin”,您将执行以下检查
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;
}
}
}
谢谢你的帮助,我试过了,但还是有麻烦。我担心NGINX找不到我的密码文件,你能解释一下列出的不同路径之间的关系吗?例如,root
location/
,然后conf/htpasswd'我不清楚系统如何知道如何找到相对路径
conf/htpasswd'当你删除基本身份验证时,页面是否也会出现403?如果是这样,这是一个权限问题:Nginx无法访问位于/home/me/app/scta/hello\u world/public
的资源。