Authentication 使用nginx限制访问

Authentication 使用nginx限制访问,authentication,nginx,Authentication,Nginx,我在使用nginx查看我的网站时遇到了需要授权的问题。我想知道是否有人能帮忙 我使用htpasswd创建了一个密码。它创建了一个名为htpasswd的文件,该文件直接存储在nginx.Conf旁边的Conf/中 Conf目录是hello_world的同级目录,也是下面列出的root路径中的scta文件夹的子目录 重新启动服务器后,我的浏览器要求我输入密码。我输入信息,对话框消失,浏览器简单地说“未授权”。之后,浏览器甚至没有给我重新输入用户名和密码的机会 我不确定我做错了什么 更新后,我意识到我

我在使用nginx查看我的网站时遇到了需要授权的问题。我想知道是否有人能帮忙

我使用htpasswd创建了一个密码。它创建了一个名为htpasswd的文件,该文件直接存储在nginx.Conf旁边的Conf/中

Conf目录是
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
的资源。