请选择 进入手机版 | 继续访问电脑版
查看: 915|回复: 0

宝塔面板编译Nginx secure_link模块以及php高级防盗链

[复制链接]

28

主题

29

帖子

172

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
172
发表于 2019-10-27 17:30:03 | 显示全部楼层 |阅读模式
宝塔在默认编译nginx后,会保留源码,及必要的模块源码(如ngx_cache_purge),所以编译时无需再次下载
默认安装脚本:/www/server/panel/install/nginx.sh
nginx源码目录:/www/server/nginx/src/

1、输入nginx -V 取得当前 的nginx参数
2、根据参数重构 含 secure_link的参数

  1. --user=www --group=www --prefix=/www/server/nginx --with-openssl=/www/server/nginx/src/openssl --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt="-Wl,-E" --with-http_secure_link_module
复制代码
3、重新编译安装
  1. cd /www/server/nginx/src/
  2. ./configure --user=www --group=www --prefix=/www/server/nginx --with-openssl=/www/server/nginx/src/openssl --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt="-Wl,-E" --with-http_secure_link_module
  3. make
  4. rm -f /www/server/nginx/sbin/nginx.old
  5. mv /www/server/nginx/sbin/nginx /www/server/nginx/sbin/nginx.old
  6. cp objs/nginx /www/server/nginx/sbin/nginx
  7. make upgrade
复制代码
提示:nginx 1.12.2已支持ipv6,不需要再单独指定–with-ipv6


4、安装成功
5、php高级防盗链
nginx配置
  1. location /{
  2.     secure_link $arg_md5,$arg_expires;
  3.     secure_link_md5 12345666$arg_expires$uri;

  4.     if ($secure_link = "") {
  5.         return 403;
  6.     }

  7.     if ($secure_link = "0") {
  8.         return 410;
  9.     }

  10. }
复制代码
在php中 拼接访问url
  1. $secret = " secret";
  2. $uri = "/hls/cctv1.m3u8";
  3. $expire = time() + 300;
  4. $md5 = base64_encode(md5($expire.$uri.$secret,true));
  5. $md5 = strtr($md5, '+/', '-_');
  6. $md5 = str_replace('=', '', $md5);
  7. $url = "http://demo.com/hls/cctv1.m3u8?md5={$md5}&expires={$expire}";
复制代码

也可以用函数
  1. function Secure($path,$t=20){
  2.         $secret = 'jiannannv';
  3.         $expire = time() + $t;
  4.         $md5 = base64_encode(md5($secret . $path . $expire, true));
  5.         $md5 = strtr($md5, '+/', '-_');
  6.         $md5 = str_replace('=', '', $md5);
  7.         $urls = $path . '?st=' . $md5 . '&e=' . $expire;
  8.         return $urls;
  9. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站长统计
快速回复 返回顶部 返回列表