【问题标题】:Node .js server with nginx and basic auth带有 nginx 和基本身份验证的 Node .js 服务器
【发布时间】:2015-12-31 06:06:05
【问题描述】:

我正在尝试在 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 时,每次(无限期地)我按 Enter 键(无论我设置为登录名和密码——即使是好的),基本身份验证表单都会重新出现。

服务器只返回一些纯文本res.end("Hello World\n");,在基本身份验证表单再次出现之前我可以看到一秒钟。

第二个问题,是否可以阻止 x.x.x.x:3000(如果没有,在 :80 上设置身份验证没有意义)。

谢谢!

顺便说一句,这是我第一次设置 nginx(我已经花了很多时间)。

注意:它可以在没有基本身份验证的情况下工作(或在我的位置使用 auth_basic off;)。

目前我的网站看起来总是这样: :)

【问题讨论】:

    标签: node.js nginx server basic-authentication


    【解决方案1】:

    好吧,我的错,明白了!

    显然 .htpasswd have to be encrypted、openssl passwd 中的密码可以正常工作。

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

    希望这可能对其他一些 nginx 的新用户有所帮助!

    【讨论】:

      【解决方案2】:

      我已成功使用您的示例。

      如果你强制节点只在本地监听,你不需要创建 iptables 规则。

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

      htpasswd -c path/.passwdfile user
      

      如果丢失:

      sudo apt-get install apache2-utils
      

      【讨论】:

        猜你喜欢
        • 2014-07-30
        • 1970-01-01
        • 2018-08-11
        • 1970-01-01
        • 1970-01-01
        • 2015-08-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多