使用Nginx和基本身份验证的Node.js服务器

4
我尝试在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;)。
目前我的网站总是像这样:enter image description here :)
2个回答

0

好的我的错,我明白了!

显然,.htpasswd中的密码必须加密openssl passwd非常有效。

第二个问题很简单,iptables可以解决这个问题。

希望这对其他使用nginx的新用户有所帮助!


0

我已经成功使用了你的示例。

如果你强制节点仅在本地侦听,那么你不需要创建iptables规则。

要创建.passwd文件,你也可以使用htpasswd:

htpasswd -c path/.passwdfile user

如果缺失:
sudo apt-get install apache2-utils

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接