您的位置:首页 > 理论基础 > 计算机网络

nginx 的第三方模块ngx_http_accesskey_module 来实现下载文件的防盗链步骤(linux系统下)

2015-05-10 21:02 986 查看
nginx 的第三方模块ngx_http_accesskey_module 来实现下载文件的防盗链步骤(linux系统下),安装Nginx和HttpAccessKeyModule模块(参考LNMP环境搭建:

第一步:在/usr/local/src/下下载模块压缩包:

wget http://wiki.nginx.org/images/5/51/Nginx-accesskey-2.0.3.tar.gz (下载)

tar zxvf Nginx-accesskey-2.0.3.tar.gz (解压)

cd nginx-accesskey-2.0.3/ (切换目录)

解压此文件后,找到nginx-accesskey-2.0.3下的config文件。

编辑此文件:替换其中的"$HTTP_ACCESSKEY_MODULE"为"ngx_http_accesskey_module"

vi config

修改结果如下:

#HTTP_MODULES="$HTTP_MODULES $HTTP_ACCESSKEY_MODULE"

HTTP_MODULES="$HTTP_MODULES ngx_http_accesskey_module"

第二步:安装nginx1.5.2,–with-***设置的是模块源码包的路径

tar zxvf nginx-1.5.2.tar.gz

cd nginx-1.5.2

./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module \

--with-http_ssl_module --with-http_realip_module --with-http_image_filter_module \

--add-module=/usr/local/src/nginx-accesskey-2.0.3/

make

make install

/usr/sbin/groupadd www

/usr/sbin/useradd -g www www

创建web根目录并修改权限,当然可以指定其他目录,只要和Nginx配置文件一致即可

mkdir -p /data0/htdocs/www

chmod +w /data0/htdocs/www

chown -R www:www /data0/htdocs/www

vi /usr/local/webserver/nginx/conf/nginx.conf

修改#user nobody;为user www www;

修改location /{}中的root html;为网站目录例如/data0/htdocs/www

在/data0/htdocs/www目录中随便创建一个index.html文件

启动nginx并访问测试

ulimit -SHn 65535

/usr/local/webserver/nginx/sbin/nginx

其他命令:

测试nginx的配置文件是否正确/usr/local/webserver/nginx/sbin/nginx -t

修改nginx配置文件后使之生效/usr/local/webserver/nginx/sbin/nginx -s reload

查看端口确认是否启动成功 netstat -tunpl | grep 80

查看第三方模块ngx_http_accesskey_module是否添加上:/usr/local/webserver/nginx/sbin/nginx -V

第三步:修改nginx的conf文件,server{***}里边添加以下几行

location /download {

accesskey on;

accesskey_hashmethod md5;

accesskey_arg "key";

accesskey_signature "mypass$remote_addr";

}

其中:

accesskey为模块开关;

accesskey_hashmethod为加密方式MD5或者SHA-1;

accesskey_arg为url中的关键字参数;

accesskey_signature为加密值,此处为mypass和访问IP构成的字符串。

/download 为下载文件的目录,前台php产生的下载路径格式是:http://*****.com/download/1.zip?key=

这样,当访问没有跟参数一样时,其他用户打开时,就出现:403

访问测试脚本download.php:

<?php

$ipkey= md5("mypass".$_SERVER['REMOTE_ADDR']);

//$ipkey生成的算法要跟配置文件的设置保持一致

$output_add_key="<a href=http://192.168.1.82/download/a.jpg?key=".$ipkey.">

download_add_key</a>";

$output_org_url="<a href=http://192.168.1.82/download/a.jpg>download_org_path</a>";

echo $output_add_key;

echo $output_org_url;

?>

访问第一个download_add_key链接可以正常下载,第二个链接download_org_path会返回403 Forbidden错误。

若出现不了,“访问第一个download_add_key链接可以正常下载,第二个链接download_org_path会返回403 Forbidden错误”这种结果,可查看进程:

ps aux | grep nginx

kill -9 2366

kill -9 7863

最后命令启动nginx: /usr/local/webserver/nginx/sbin/nginx

OK完成,可以查看结果啦
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: