nginx 的第三方模块ngx_http_accesskey_module 来实现下载文件的防盗链步骤(linux系统下)
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完成,可以查看结果啦
nginx 的第三方模块ngx_http_accesskey_module 来实现下载文件的防盗链步骤(linux系统下)的更多相关文章
- Debian 为nginx增加第三方模块
为nginx增加第三方模块需要重新编译nginx的,但是debian在安装nginx的时候做了很多事情,比如systemd,/etc/nginx/里的各种文件,所以我们最好在debian源代码包的基础 ...
- nginx增加第三方模块
增加第三方模块 ============================================================ 一.概述nginx文件非常小但是性能非常的高效,这方面完胜ap ...
- nginx 安装第三方 模块
查看nginx在安装时开启了哪些模块 如果你nginx是rpm包安装的,直接用如下命令nginx -V 如果你是源码包编译安装,假如你的安装路径是/usr/local/nginx,那么你可以使用: / ...
- 在Linux系统下安装nginx教程
最近学习了nginx,就打算nginx安装在Linux系统下,于是我就把安装步骤记录下来了,分享给大家,希望能对大家有帮助! 我的博客地址:https://www.cnblogs.com/themys ...
- Nginx在Windows系统和Linux系统下的重启
一.Windows系统下重启nginx 1.杀掉nginx进程 tskill nginx echo 已终止所有ginx进程 2.启动nginx cd f:\nginx- nginx.exe ...
- Linux系统下利用wget命令把整站下载做镜像网站
Linux系统下利用wget命令把整站下载做镜像网站 2011-05-28 18:13:01 | 1次阅读 | 评论:0 条 | itokit 在linux下完整的用wget命令整站采集网站做镜像 ...
- redis在windows和Linux系统下的下载、安装、配置
1.下载redis安装包 在redis的官网只有Linux系统下的安装包,微软的GitHub上有提供windows版本的redis安装包 redis中文网:http://www.redis.cn/ 微 ...
- linux系统下nginx安装目录和nginx.conf配置文件目录
linux系统下nginx安装目录和nginx.conf配置文件目录 1.查看nginx安装目录 输入命令 # ps -ef | grep nginx 返回结果包含安装目录 root 26 ...
- nginx安装第三方模块的方法
nginx第三方模块安装方法: ./configure --prefix=/你的安装目录 --add-module=/第三方模块目录 以安装fair模块实例 下载fair安装包并解压 1.在未安装ng ...
随机推荐
- SessionUtils
import com.diyfintech.constant.Constant.SuperAdmin; import com.diyfintech.pojo.SysUser; import org.a ...
- Spring MVC + Java 多文件上传及多文件中转上传
1.html内容 <div> <form method="post" action="/Cyberspace/main/informationBatch ...
- Hadoop WordCount程序
一.把所有Hadoop的依赖jar包导入buildpath,不用一个一个调,都导一遍就可以,因为是一个工程,所以覆盖是没有问题的 二.写wordcount程序 1.工程目录结构如下: 2.写mappe ...
- 28-THREE.JS 扇形圆形
<!DOCTYPE html> <html> <head> <title></title> <script src="htt ...
- win8 商店应用 设计风格原则
共八条: 1,突出内容(数据). a,仅在屏幕上保留最相关的元素:移除线条.框和不必要的图形效果:限制屏幕上持久显示的导航框,如选项卡. b,交互尽量直接在内容上,直接控制内容来完成操作,而不是使用控 ...
- Visual Studio 2008常见问题
1.asp.net在什么软件上运行?学习asp往往需要测试asp程序,电脑不能直接测试,需要装IIS才能运行,但装IIS要么需要安装盘,要么需要安装包,而且设置也很复搜索杂.这里给大学推荐两个替代II ...
- JavaScript遍历树结构
遍历 function parseTreeJson(treeNodes){ if(!treeNodes||!treeNodes.length)return; for(let i=0;i<tree ...
- postgresql recovery.conf改变需要重启吗
之前在研究pgpoll时,发现trigger_file参数指定的文件存在后,会自动将standby节点提升为可写节点.不需要手动执行pg_ctl promote,但是这个时间一般有延迟,因为进程会定期 ...
- PostgreSQL full_page_write记录
PostgreSQL 在 checkpoint 之后在对数据页面的第一次写的时候会将整个数据页面写到 xlog 里面. 当出现主机断电或者OS崩溃时,redo操作时通过checksum发现“部分写”的 ...
- Http权威指南(报文)
1.报文的组成 报文由 起始行.首部.主体(可选)组成 请求报文: <method> <request-URL> <version> <headers> ...