Nginx防盗链详细设置
[
2010/06/03 20:04 | by admin ]
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错误。
Nginx怎么打开目录浏览功能?
[
2010/06/03 20:00 | by admin ]
2010/06/03 20:00 | by admin ]
你还记得apache下打开目录浏览功能的参数吗
Options FollowSymLinks
AllowOverride None
Options Indexes #就加这句就可以了,目录按需要选择
在Nginx下默认是不允许列出整个目录的。如需此功能,
先打开nginx.conf文件,在location server 或 http段中加入
另外两个参数最好也加上去:
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
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
Nginx的几个常用的命令参数
[
2010/06/03 19:57 | by admin ]
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文件没有错误。
如果有错,他会提示你在哪行出了错,在修改错误就可以了
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文件没有错误。
如果有错,他会提示你在哪行出了错,在修改错误就可以了
Nginx 目录访问末尾自动加斜线 /
[
2010/06/03 19:56 | by admin ]
2010/06/03 19:56 | by admin ]
默认配置当你访问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
常见做法 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





