我已按照说明操作,但仍无法密码保护我的网站。这就是我的app-nginx.config的样子:
server {
listen 80;
server_name Server_Test;
auth_basic "Restricted";
auth_basic_user_file /usr/local/nginx/conf/htpasswd;
...
}
我哪里错了?我从教程网站复制并粘贴了这个。
答案 0 :(得分:15)
确保Nginx可以访问密码文件。 auth_basic_user_file的路径相对于nginx.conf
目录。因此,如果nginx.conf
位于/usr/local/nginx
,您可以将指令更改为:
auth_basic_user_file conf/htpasswd;
并且文件必须是可读的。
此文件应该是工作人员可读的,从非特权运行 用户。 E. g。当nginx从www运行时,您可以将权限设置为:
chown root:nobody htpasswd_file chmod 640 htpasswd_file
答案 1 :(得分:7)
让我的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
的文件,您需要使用{{ 1}}能够改变它(例如:
sudo
)
添加密码:
所以,既然知道了玩家(无论如何都是静态的开箱即用网站),让我们把一些文件放在' html'文件夹,并为其添加密码保护。
要设置密码,我们需要做两件事: 1.创建一个密码文件(拥有尽可能多的用户,但我会以1结算)。 2.配置当前服务器('默认')以限制此页面并使用1中的文件启用密码保护。
<强> 1。让我们创建一个密码:
我想用的内容是:
sudo vi default
(您将获得输入并重新输入密码的提示),您可以在一行中执行此操作:
sudo htpasswd -c /etc/nginx/.htpasswd john
我将解释命令的每个部分:
sudo htpasswd -c /etc/nginx/.htpasswd john [your password]
- 使用更高的权限执行此操作。sudo htpasswd
- for:创建文件(将另一个用户添加到现有用户跳过此参数)-c
- 创建的文件的名称
(&#39; .htpsswd&#39;在文件夹/ etc / nginx中)/etc/nginx/.htpasswd
是用户的名称(要在提示的&#39;用户&#39;字段中输入)john
是此特定用户名所需的密码。 (当提示..)通常password
命令对您不起作用,因此您必须安装它的软件包:
使用:htpasswd
(如果失败,请尝试使用sudo apt-get install apache2-utils
然后重试)
<强> 2。让我们配置服务器以使用此文件进行身份验证
让我们使用此行编辑当前(默认)服务器配置文件:
sudo apt-get update
(你不必使用&#39; vi&#39;但我喜欢它..)
删除大部分注释(#)
后文件如下所示sudo vi /etc/nginx/sites-enabled/default
我们需要在块内添加两行(&#39; /&#39;指向站点的根文件夹),所以它看起来像这样:
# 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";
- 将我们创建的文件(/etc/nginx/.htppasswd)定义为此身份验证的密码文件。让我们重启服务并享受受密码保护的网站:
auth_basic_user_file /etc/nginx/.htpasswd;
Viola - 享受......
以下是一些更好的教程: