Nginx的 - 密码保护不工作(Nginx - Password Protect Not Work

2019-07-31 15:59发布

我按照指令,并且仍能我不能密码保护我的网站。 这是我的应用程序,nginx.config样子:

server {
    listen       80;
    server_name  Server_Test;
    auth_basic            "Restricted";
    auth_basic_user_file  /usr/local/nginx/conf/htpasswd;

...

}

我要去哪里错了? 我复制并粘贴从教程网站这一权利。

Answer 1:

只是做了我的nginx服务器一起工作,甚至将其配置为保护我的根文件夹访问权限。 我想和你在路上,分享我的研究结果也提供一个良好的工作和答案,在这个页面的问题。

作为一个新的用户nginx的(版本1.10.0 - Ubuntu的)。 我已经得到了第一个问题是知道文件的位置,所以这里的关键之处:

知道你的位置:

主文件夹的位置: /etc/nginx

默认站点位置: /var/www/或甚/ver/www/html/ (里面的html 。文件夹将index.html文件-希望你知道从那里做)

配置文件:

主要配置文件: /etc/nginx/nginx.conf

目前网站服务器的conf: /etc/nginx/sites-enabled在第一次安装有一个单一的文件中,有被称为default ,你需要使用sudo是能够改变它(例如: sudo vi default

添加密码:

所以,现在,电子知道播放(静态外的开箱现场反正),让我们把一些文件中的“HTML”文件夹,让我们添加密码保护它。

要设置密码,我们需要做两件事情:1,创建一个口令文件(尽可能多的用户,因为我们希望,但我会用1定居)。 2.配置当前服务器(“默认”),以限制该页面,并使用文件1,以启用密码保护。

1.让我们创建一个密码:

我想使用此行是: sudo htpasswd -c /etc/nginx/.htpasswd john (你会得到一个提示输入和重新输入密码),你可以在一个单一的线做在这里: sudo htpasswd -c /etc/nginx/.htpasswd john [your password]

我会解释该命令的各个部分:

  • sudo htpasswd -使用更高的权限做到这一点。
  • -c -为:创建文件(给其他用户添加到现有的用户跳过此说法)
  • /etc/nginx/.htpasswd - (在文件夹的/ etc / nginx的“.htpsswd”)中创建的文件的名称
  • john是用户的名称(在提示“用户”字段中输入)
  • password是这个特定的用户名的密码需要。 (提示时..)

通常情况下, htpasswd命令不会为你工作,所以你必须要安装它的包:

用途: sudo apt-get install apache2-utils (如果失败尝试使用sudo apt-get update ,然后再试一次)

2.我们将服务器配置为使用这个文件进行身份验证

让我们用这条线编辑当前(默认)服务器的conf文件:

sudo vi /etc/nginx/sites-enabled/default (您不必使用“六”,但我喜欢它。)

该文件看起来像这样去除大部分的意见后(#)

# Default server configuration
#
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }

}

我们需要添加两行的块内的位置(“/”点到站点的根文件夹),所以它会是这样的:

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;

        auth_basic "Restricted Content";
        auth_basic_user_file /etc/nginx/.htpasswd;
     }

我将解释这些新线路:

  • auth_basic "Restricted Content"; - 定义访问管理的类型
  • auth_basic_user_file /etc/nginx/.htpasswd; - 定义我们所创建的文件(/etc/nginx/.htppasswd)作为密码文件中查找该认证。

让我们重新启动该服务,并享受密码保护的网站:

sudo service nginx restart

维奥拉 -享受...

下面是一些这方面的更伟大的教程:

很好的解释

另一个咕教程



Answer 2:

确保Nginx的可以访问密码文件。 对于auth_basic_user_file路径是相对于的目录nginx.conf 。 所以,如果你nginx.conf位于/usr/local/nginx ,你可以改变你的指令:

auth_basic_user_file  conf/htpasswd;

该文件必须是可读的。

此文件应该由工人可读,从非特权用户运行。 E.克。 当从WWW nginx的来看,你可以设置权限为:

 chown root:nobody htpasswd_file chmod 640 htpasswd_file 

-从http://wiki.nginx.org/HttpAuthBasicModule



文章来源: Nginx - Password Protect Not Working
标签: nginx