我正在尝试在nginx后面运行具有基本身份验证的node.js服务器。这是我的最小配置:
server {
auth_basic "closed website";
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
proxy_pass http://localhost:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
我的第一个问题是,当我进入x.x.x.x时,每次(无限期地)按回车(无论设置为登录名和密码,甚至是好的密码),都会再次显示基本身份验证表单。
服务器仅返回一些纯文本
res.end("Hello World\n");
,在基本身份验证表单再次出现之前,我可以看到一秒钟。第二个问题,是否有可能阻止x.x.x.x:3000(如果没有,则在:80上设置auth没有意义)。
谢谢!
顺便说一句,这是我第一次设置nginx(并且我已经花了很多时间了)。
注意:它可以在没有基本身份验证的情况下工作(或在我的位置使用
auth_basic off;
)。目前,我的网站看起来总是这样:
:)
最佳答案
好吧,我的坏,明白了!
显然,.htpasswd have to be encrypted,openssl passwd
中的密码可以正常工作。
第二个问题是一个简单的问题,iptables
在那里。
希望这对Nginx的其他新用户有所帮助!