• 1
  • 2
  • 3
  • 4
  • 5
阿里云主机ECS 首 页  »  帮助中心  »  云服务器  »  阿里云主机ECS
ECS Linux一键环境包Nginx配置密码访问网站的具体操作
发布日期:2015-12-27 10:12:22

  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

  具体步骤可参考下图:


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