用于不同端口上的nginx服务器的htpassword

时间:2018-06-07 14:45:44

标签: node.js nginx .htpasswd

我正在尝试限制用户通过用户名和密码访问网站。在apache中执行它非常简单。我试图在nginx中为不同的端口,而不仅仅是80,但服务器中托管的应用程序将使用的其他一些端口。 (它是一个nodejs应用程序,目前它在端口3000上打开)

到目前为止我一直在尝试: 已安装的apache2实用程序:

sudo apt-get install apache2-utils

创建htpassword用户/密码:

sudo htpasswd -c /etc/nginx/.htpasswd username

在etc / nginx / conf.d / default.conf中添加了auth_user:

. . .
listen      80;
server_name localhost;

location / {
        . . .
        auth_basic "Private Property";
        auth_basic_user_file /etc/nginx/.htpasswd;
}
. . .

重新加载nginx:

sudo service nginx reload

现在,当我打开网站时,它会询问我的用户名/密码,但是一旦我给他们,它就会一直问我并且不让我登录。

我还想通过user / pass添加另一个要阻止的端口,如端口3000;

在etc / nginx / conf.d / default.conf中我尝试通过以下方式添加端口:

. . .
listen      80;
listen      3000;
server_name localhost;

location / {
        . . .
        auth_basic "Private Property";
        auth_basic_user_file /etc/nginx/.htpasswd;
}
. . .

server {
    listen        80;
    server_name  localhost;

    location / {
       ...
       auth_basic "Restricted Content";
       auth_basic_user_file .htpasswd;
    }
}

server {
    listen       3000 default_server;
    server_name  localhost;

    location / {
       ...
       auth_basic "Restricted Content";
       auth_basic_user_file .htpasswd;
    }
}

但是当重新加载nginx时,它会抛出错误。

所以我的问题是:

  1. 如何让htpassword正常工作?

  2. 如何让htpassword在80以外的端口上正常工作,应用程序仍能正常运行?

0 个答案:

没有答案