Apache:
Apache对网站目录加密是用.htaccess文件进行设置,在.htaccess文件中写入:
AuthType Basic
AuthName "WORKING CENTER"
AuthUserFile /home/user/.htpasswd
Require valid-user
再生成相应的密码文件.htpasswd(该文件名可以随意,不过必须与.htaccess中相同):
user:I/CrS5Tm.EPGc
以上是.htpasswd中的内容,user部分是用户名,“:”号后面的是加密后的密码,该密码可以用一个脚本生成:
#!/usr/bin/perl
usestrict;
my
$passWord=$ARGV[0];
print
crypt($passWord,$passWord)."\n";
将以上内容写入,脚本中:vim pass.pl
注意:.htaccess文件是放在需要加密的目录下,上传好后apache不需要重启,.htpasswd密码文件不要放在网站目录下,路径不要写错!
该密码文件有相关工具可以生成,htpasswd命令,比如:
#htpasswd –bc .htpasswd user passuser
这样就会在当前目录下生成带有用户名为user,密码为passuser的.htpasswd文件。
NGINX:
最近整了个云vps,是用nginx搭建的,下面的配置以它为基础。Nginx网站目录加密是通过nginx.conf配置文件来控制的,具体方法可以修改或加入配置到server段:
#vi nginx.conf #打开nginx.conf文件
location ^~ /mm {
auth_basic "Nginx Passwd";
auth_basic_user_file /home/dotcloud/.htpasswd;
}
上面的示例是加密网站目录下的mm文件夹,其下的目录都将被加密;如果不希望递归加密,把前面的^~符去掉。
同样的记得把.htpasswd文件放入对应目录下,语法跟Apache一样。
注意:由于修改了nginx配置文件记得重启或重新加载配置文件!