Nginx防盗链详细设置

[不指定 2010/06/03 20:04 | by admin ]

根据网友文章,自己实践,介绍3种Nginx防盗链的方法,节省你的宽带
一:一般的防盗链如下:


location ~* \.(gif|jpg|png|swf|flv)$ {
valid_referers none blocked www.ingnix.com ;
if ($invalid_referer) {
rewrite ^/ http://www.ingnix.com/retrun.html;
#return 404;
}
}


第一行:gif|jpg|png|swf|flv
表示对gif、jpg、png、swf、flv后缀的文件实行防盗链
第二行: 表示对www.ingnix.com这2个来路进行判断
if{}里面内容的意思是,如果来路不是指定来路就跳转到http://www.ingnix.com/retrun.html页面,当然直接返回404也是可以的。

二:针对图片目录防止盗链


location /images/ {
alias /data/images/;
valid_referers none blocked server_names *.xok.la xok.la ;
if ($invalid_referer) {return 403;}
}

三:使用第三方模块ngx_http_accesskey_module实现Nginx防盗链
实现方法如下:

实现方法如下:
1. 下载NginxHttpAccessKeyModule模块文件:Nginx-accesskey-2.0.3.tar.gz;
2. 解压此文件后,找到nginx-accesskey-2.0.3下的config文件。编辑此文件:替换其中的”$HTTP_ACCESSKEY_MODULE”为”ngx_http_accesskey_module”;
3. 用一下参数重新编译nginx:
./configure --add-module=path/to/nginx-accesskey
4. 修改nginx的conf文件,添加以下几行:


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:


$ipkey= md5("mypass".$_SERVER['REMOTE_ADDR']);
$output_add_key="download_add_key
";
$output_org_url="download_org_path
";
echo $output_add_key;
echo $output_org_url;
?>


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

Tags:

Nginx怎么打开目录浏览功能?

[不指定 2010/06/03 20:00 | by admin ]
你还记得apache下打开目录浏览功能的参数吗

  
   Options FollowSymLinks
    AllowOverride None
    Options Indexes           #就加这句就可以了,目录按需要选择




在Nginx下默认是不允许列出整个目录的。如需此功能,
先打开nginx.conf文件,在location server 或 http段中加入

引用
autoindex on;


另外两个参数最好也加上去:

autoindex_exact_size off;
默认为on,显示出文件的确切大小,单位是bytes。
改为off后,显示出文件的大概大小,单位是kB或者MB或者GB

autoindex_localtime on;
默认为off,显示的文件时间为GMT时间。
注意:改为on后,显示的文件时间为文件的服务器时间

server{
listen 80;
servername www.A.com;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
root /home/www/;
}
详细参照:http://wiki.nginx.org/NginxChsHttpAutoindexModule
Tags:

Nginx的几个常用的命令参数

[不指定 2010/06/03 19:57 | by admin ]
一、nginx的几个命令参数

Nginx 安装后只有一个程序文件,本身并不提供各种管理程序,它是使用参数和系统信号机制对 Nginx 进程本身进行控制的。 Nginx 的参数包括有如下几个:

-c

:使用指定的配置文件而不是 conf 目录下的 nginx.conf 。

-t:测试配置文件是否正确,在运行时需要重新加载配置的时候,此命令非常重要,用来检测所修改的配置文件是否有语法错误。

-v:显示 nginx 版本号。

-V:显示 nginx 的版本号以及编译环境信息以及编译时的参数。

二、检测新的conf文件

测试当请目录下nginx.conf文件是否正确,使用命令:

nginx -t -c nginx.conf

2009/04/27 22:17:57 [info] 54240#0: the configuration file nginx.conf syntax is ok

2009/04/27 22:17:57 [info] 54240#0: the configuration file nginx.conf was tested successfully

得到如此结果,说明新conf文件没有错误。

如果有错,他会提示你在哪行出了错,在修改错误就可以了
Tags:
默认配置当你访问http://www.gsywx.com/dir 时不会加”/”

常见做法 if (-d $request_filename){
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}更佳的替代方法

optimize_server_names off;#优化服务器名称:关
server_name_in_redirect off;#服务器名称重定向:关

http://wiki.codemongers.com/NginxHttpCoreModule#optimize_server_names
Tags:
分页: 19/30 第一页 上页 14 15 16 17 18 19 20 21 22 23 下页 最后页 [ 显示模式: 摘要 | 列表 ]