我正在尝试使用 Nginx 设置基本身份验证。
我的服务器配置如下:
server {
listen 80;
server_name DOMAIN;
root /var/www/web-front-dev/current/public;
error_log /var/log/nginx/web-front-dev-error.log;
access_log /var/log/nginx/web-front-dev-access.log;
passenger_enabled on;
client_max_body_size 100M;
location / {
passenger_enabled on;
auth_basic "Restricted";
auth_basic_user_file /var/www/web-front-dev/shared/simple_authentication_user_file;
}
}
simple_authentication_user_file 的内容很简单:a:b
重新启动所有程序后,我尝试登录到我的域时仍然出现错误(我检查过我是否正确输入了“b”嗯嗯):
2011/08/10 16:10:13 [error] 26768#0: *1 user "a": password mismatch, client: IP, server: DOMAIN, request: "GET / HTTP/1.1", host: "DOMAIN"
我甚至将 chmod 777 放入 simple_authentication_user_file 中以查看是否存在问题,但没有成功。
有人可以建议我检查一些东西吗?
答案1
您是否尝试使用纯文本密码?文档指出您必须使用加密密码:http://wiki.nginx.org/HttpAuthBasicModule
密码必须通过函数 crypt(3) 进行编码。