之前有说到用h5ai做了一个资源分享,但是毕竟有些属于私人,所以想到给网站目录加密,方便对于自己一个私人资源的管理。教程如下:

Apache:

Apache对网站目录加密是用.htaccess文件进行设置,在你需要加密的目录下,增加一个.htaccess,文件中写入:

AuthType Basic
AuthName "WORKING CENTER"         #此处是目录打开的欢迎语
AuthUserFile /home/user/.htpasswd #此处目录位置自定义,不能被下载就可以
Require valid-user

再生成相应的密码文件.htpasswd(该文件名可以随意,不过必须与.htaccess中相同):

username:password

以上是.htpasswd中的内容,username部分是用户名(可自定义),“:”号后面的是加密后的密码,该密码可以用一个脚本生成:

#!/usr/bin/perl
 usestrict;
 my
 $passWord=$ARGV[0];
 print
 crypt($passWord,$passWord)."\n";

然后执行

chmod +x pw.pl
./pw.pl password 

如果设置没问题,会返回如下信息

papAq5PwY/QQM

papAq5PwY/QQM就是password被加密后的密码。

然后将上面用 perl 生成的加密后的密码,按照

用户名:密码

的格式写到.htpasswd文件中,然后放置之前设置的对应目录就完成了加密。 注意:.htaccess文件是放在需要加密的目录下,上传好后Apache不需要重启,.htpasswd密码文件不要放在网站目录下,路径不要写错! 该密码文件有相关工具可以生成,htpasswd命令,比如:

#htpasswd –bc .htpasswd user passuser

这样就会在当前目录下生成带有用户名为user,密码为passuser的.htpasswd文件。

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配置文件记得重启或重新加载配置文件!