具有nginx和基本身份验证的Node .js服务器

时间:2015-10-02 23:17:18

标签: node.js nginx server basic-authentication

我尝试使用基本身份验证在nginx后面运行node.js服务器。这是我的最小配置:

$ret = [];
foreach($data as $key => $val) {
    $i = 0;
    foreach ($val as $v) {
        $ret[$i][$key] = $v;
        $i++;
    }
}

我的第一个问题是,当我转到x.x.x.x时,每次(无限期地)我都会重新出现基本身份验证表单(无论我设置为登录名和密码 - 即使是好的)。

服务器只返回一些纯文本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:3000(如果没有,设置授权时没有意义:80)。

谢谢!

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

注意:它在没有基本身份验证的情况下工作(或者在我的位置使用res.end("Hello World\n");)。

目前我的网站看起来总是那样: enter image description here :)

2 个答案:

答案 0 :(得分:0)

好吧,我的坏,明白了!

显然.htpasswd have to be encryptedopenssl passwd中的密码工作得很好。

第二个问题很容易,iptables就是这样。

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

答案 1 :(得分:0)

我已成功使用您的样本。

如果强制节点仅在localhost中侦听,则不需要创建iptables规则。

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

htpasswd -c path/.passwdfile user

如果遗失:

sudo apt-get install apache2-utils