当前位置: > Linux服务器 > nginx >

ECS Linux一键环境包Nginx配置密码访问网站

时间:2016-01-02 22:19来源:linux.it.net.cn 作者:IT

Nginx提供一个HTTP Auth Basic模块,采用HTTP基本身份验证的用户名密码登录方式来保护主机,

实现方法为在网站配置文件中增加以下两行:

 

auth_basic "TEST PASSWORD";                   ####引号之间填写提示语

auth_basic_user_file /alidata/www/test/passwd.db;      #####写上密码的文件


 

比如,以阿里云一键安装包中的nginx配置文件举例

路径是:/alidata/server/nginx/conf/vhosts/

配置文件具体内容:

 

[root@test vhosts]# cat test.conf 

server {

        listen       80;

        server_name  www.test.com;                     ###网站的域名

        index index.html index.htm index.php;

        root /alidata/www/test;                                 ###网站的路径

        location ~ .*\.(php|php5)?$

        {

                #fastcgi_pass  unix:/tmp/php-cgi.sock;

                fastcgi_pass  127.0.0.1:9000;

                fastcgi_index index.php;

                include fastcgi.conf;

        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

        {

                expires 30d;

        }

        location ~ .*\.(js|css)?$

        {

                expires 1h;

        }

auth_basic "TEST PASSWORD";                   ####引号之间填写提示语

auth_basic_user_file /alidata/www/test/passwd.db;      #####写上密码的文件

 

        access_log  /alidata/log/nginx/access/test.log;     ####日志路径

}

 

之后需要通过htpasswd命令创建账号密码,-c选项后的passwd.db是密码文件,要和nginx配置文件中auth_basic_user_file实际的文件相同

格式是:

 

htpasswd -c passwd.db username  之后会提示输入密码

 

很多nginx中没有这个htpasswd命令,则可以通过创建一个perl的文件来生成密码,方法是:

创建一个名为htpasswd.pl的加密密码生成文件,

内容为:

#! /usr/bin/perl

use strict;

my $pw=$ARGV[0];

print crypt($pw,$pw)."\n";

 

之后增加权限 :chmod +x htpasswd.pl

执行命令: ./htpasswd.pl 密码

将生成加密的密码写到密码文件,可以用vi,也可以用echo方法。

创建后最好将密码文件通过chmod 640 passwd.db 把生成的文件修改权限。

 

密码文件格式是:

账号:加密密码

比如:

user:teH0wLIpW0gyQ

 

具体步骤可以参考下图:

test002.jpg

 

创建后访问网站时会提示如下信息,输入正确账号密码后,才能进入网站。

test001.jpg

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容