Nginx-密码保护不起作用

Nginx-密码保护不起作用,nginx,Nginx,我已经按照指示,但我仍然不能密码保护我的网站。这就是我的app-nginx.config的外观: server { listen 80; server_name Server_Test; auth_basic "Restricted"; auth_basic_user_file /usr/local/nginx/conf/htpasswd; ... } 我哪里做错了?我从一个教程网站上复制并粘贴了这篇文章。确保Nginx

我已经按照指示,但我仍然不能密码保护我的网站。这就是我的app-nginx.config的外观:

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

...

}

我哪里做错了?我从一个教程网站上复制并粘贴了这篇文章。

确保Nginx可以访问密码文件。auth_basic_user_文件的路径相对于
nginx.conf
目录。因此,如果您的
nginx.conf
位于
/usr/local/nginx
中,您可以将指令更改为:

auth_basic_user_file  conf/htpasswd;
而且文件必须是可读的

此文件应由从非特权服务器运行的工作人员读取 用户。例如。从www运行nginx时,您可以将权限设置为:

chown root:nobody htpasswd_file
chmod 640 htpasswd_file

--from

刚刚使我的nginx服务器工作,甚至将其配置为保护我的根文件夹访问。我想与大家分享我的发现,同时也为本页中的问题提供一个好的、有效的答案

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

了解您的位置:

主文件夹位置:
/etc/nginx

默认站点位置:
/var/www/
甚至
/ver/www/html/
(在
html
文件夹内将是index.html文件-希望您知道从那里可以做些什么。)

配置文件:

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

当前站点serverconf:
/etc/nginx/sites enabled
(第一次安装时,有一个名为
default
的文件,您需要使用
sudo
来更改它(例如:
sudo vi默认值

添加密码:

因此,既然我们已经了解了玩家(不管怎样,对于一个静态的开箱即用的站点),让我们把一些文件放在“html”文件夹中,并给它添加密码保护

要设置密码,我们需要做两件事: 1.创建一个密码文件(我们想要多少用户就有多少用户,但我会选择1)。 2.配置当前服务器(“默认”)以限制此页面,并使用1中的文件启用密码保护

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

我想在这里使用的行是:
sudo-htpasswd-c/etc/nginx/.htpasswd-john
(您将得到一个输入和重新输入密码的提示),您可以在这里的一行中完成:
sudo-htpasswd-c/etc/nginx/.htpasswd-john[您的密码]

我将解释命令的每个部分:

  • sudo htpasswd
    -使用更高的权限执行此操作
  • -c
    -for:create file(要向现有用户添加其他用户,请跳过此参数)
  • /etc/nginx/.htpasswd
    -创建的文件的名称 (/etc/nginx文件夹中的“.htpsswd”)
  • john
    是用户的姓名(在提示的“用户”字段中输入)
  • password
    是此特定用户名所需的密码。(出现提示时…)
通常,
htpasswd
命令不适用于您,因此您必须安装它的软件包:

使用:
sudo-apt-get-install-apache2-utils
(如果失败,请尝试使用
sudo-apt-get-update
,然后重试)

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

让我们使用此行编辑当前(默认)服务器配置文件:

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

删除大多数注释(#)后,该文件看起来像这样

我们需要在块内添加两行位置(“/”指向站点的根文件夹),因此它看起来如下所示:

    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“受限内容”
    -定义访问管理的类型
  • auth\u basic\u user\u file/etc/nginx/.htpasswd;
    -将我们创建的文件(/etc/nginx/.htppasswd)定义为此身份验证的密码文件
让我们重新启动服务,享受受密码保护的站点:

sudo服务nginx重启

中提琴-享受

以下是一些关于这方面的更好的教程:


不是“Viola”,而是“Voilá”;)此外,
auth_basic
指令没有定义访问管理的类型,只是定义将用于向用户显示密码框的标题。它确实定义了。阅读文档。它定义了标题,但也启用了,因为关闭意味着禁用
    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;
     }