下载模块ngx_http_accesskey_module 

http://wiki.nginx.org/p_w_picpaths/5/51/Nginx-accesskey-2.0.3.tar.gz

 Nginx-accesskey-2.0.3.zip   

#tar zxvf Nginx-accesskey-2.0.3.tar.gz


# vi nginx-accesskey-2.0.3/config

将HTTP_MODULES="$HTTP_MODULES $HTTP_ACCESSKEY_MODULE"

改为

HTTP_MODULES="$HTTP_MODULES ngx_http_accesskey_module"


 编译nginx,如果之前编译过,到nginx安装目录下使用./sbin/nginx -V查看编译过哪些模块,重新编译时加上

# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --add-module=/usr/local/nginx_mod_h264_streaming-2.2.7 --with-http_flv_module --with-openssl-opt=enable  --with-http_mp4_module --with-http_ssl_module --add-module=/usr/local/nginx-accesskey-2.0.3

# make & make install


修改nginx配置文件

添加

location / {

                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构成的字符串。


测试网页

点击(此处)折叠或打开

  1. <?php

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

  3. $output_add_key=".$ipkey.">

  4. download_add_key";

  5. $output_org_url="download_org_path";

  6.       

  7. echo $output_add_key;


  8. echo $output_org_url;

  9. ?>

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