Nginx-密码保护不起作用
我已经按照指示,但我仍然不能密码保护我的网站。这就是我的app-nginx.config的外观: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
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
-for:create file(要向现有用户添加其他用户,请跳过此参数)-c
-创建的文件的名称 (/etc/nginx文件夹中的“.htpsswd”)/etc/nginx/.htpasswd
是用户的姓名(在提示的“用户”字段中输入)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“受限内容”
-将我们创建的文件(/etc/nginx/.htppasswd)定义为此身份验证的密码文件auth\u basic\u user\u file/etc/nginx/.htpasswd;
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;
}