我正在尝试对我的 Nginx 驱动站点上的目录进行密码保护,其中包含 phpMyAdmin、MemcacheMyAdmin 和更多管理实用程序等内容。
该目录位于我网站的根目录中:
domain.com/control/
我服务器上的绝对路径位于:
/home/deployer/sites/domain.com/control/
我使用以下命令在目录中创建了一个 .htpasswd 文件:
htpasswd -c /home/deployer/sites/domain.com/control/.htpasswd admin
该文件存在,由“root”用户拥有,并且是 0644 权限。
在 Nginx 中此域的 .conf 文件中,我使用以下位置块来要求身份验证。
location /control {
auth_basic "Restricted Area: Control";
auth_basic_user_file /home/deployer/sites/domain.com/control/.htpasswd;
}
进入受密码保护的目录时,系统会提示我输入用户名和密码。我输入了我之前创建的凭据,然后我会看到一个错误 403 禁止页面。
访问日志显示我正在点击登录提示,然后以“管理员”用户身份登录:
64.123.456.225 - - [12/May/2013:17:30:48 +0000] "GET /control HTTP/1.1" 401 597 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31"
64.123.456.225 - admin [12/May/2013:17:30:48 +0000] "GET /control HTTP/1.1" 301 185 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31"
64.123.456.225 - admin [12/May/2013:17:30:59 +0000] "GET /control/memcache/ HTTP/1.1" 403 199 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31"
错误日志显示以下内容:
2013/05/12 17:31:01 [error] 30462#0: *1 directory index of "/home/deployer/sites/domain.com/control/memcache/" is forbidden, client: 64.123.456.225, server: domain.com, request: "GET /control/memcache/ HTTP/1.1", host: "domain.com"
2013/05/12 17:31:09 [error] 30462#0: *1 directory index of "/home/deployer/sites/domain.com/control/memcache/" is forbidden, client: 64.123.456.225, server: domain.com, request: "GET /control/memcache/ HTTP/1.1", host: "domain.com"
如果我删除该站点的 Nginx .conf 的 Auth 块,我就可以正常访问该页面。
谢谢你的帮助!