我按照指令,并且仍能我不能密码保护我的网站。 这是我的应用程序,nginx.config样子:
server {
listen 80;
server_name Server_Test;
auth_basic "Restricted";
auth_basic_user_file /usr/local/nginx/conf/htpasswd;
...
}
我要去哪里错了? 我复制并粘贴从教程网站这一权利。
我按照指令,并且仍能我不能密码保护我的网站。 这是我的应用程序,nginx.config样子:
server {
listen 80;
server_name Server_Test;
auth_basic "Restricted";
auth_basic_user_file /usr/local/nginx/conf/htpasswd;
...
}
我要去哪里错了? 我复制并粘贴从教程网站这一权利。
只是做了我的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
维奥拉 -享受...
下面是一些这方面的更伟大的教程:
很好的解释
另一个咕教程
确保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