nginx防盗链、nginx访问控制、nginx和php整合、nginx代理
1、nginx防盗链
编辑:vim /usr/local/nginx/conf/vhost/test.com.conf
写入:
location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$
{
expires 7d;
valid_referers none blocked server_names *.test.com ;
if ($invalid_referer) {
return 403;
}
access_log off;
}
当然以上加入的代码,可以相互组合的
查检语法:/usr/local/nginx/sbin/nginx -t
重新加载:/usr/local/nginx/sbin/nginx -s reload
测试查看:
自定义一个referer访问:curl -e "http://www.baidu.com/" -x127.0.0.1:80 0.0.0.0/11.zip -I
到此,防盗链配制完成。
2、nginx访问控制
继续编辑:vim /usr/local/nginx/conf/vhost/test.com.conf
加入:
location /admin/ #针对于admin目录
{
allow 192.168.133.1;
allow 127.0.0.1;
deny all;
}
查检语法:/usr/local/nginx/sbin/nginx -t
重新加载:/usr/local/nginx/sbin/nginx -s reload
创建一个目录:mkdir -p /var/www/test.com/admin
创建一个测试文件:echo "admin_权限" >/var/www/test.com/admin/aa.html
测试查看:
查看日志:
若需要针对文件:
比如:location ~ .*(upload|image)/.*\.php$ #这里就是匹配含有upload或image并以.php结尾的文件,匹配到了则全部禁止访问。(可以理解为,禁止php解析)
{
deny all;
}
然后进行 检查、重新加载和查看:
查看日志:
还可以根据user_agent进行限制:
加入:
if ($http_user_agent ~* 'Spider/3.0|YoudaoBot|Tomato')
{
return 403;
}
测试查看:
查看日志:
至此,访问控制配制完毕。
3、nginx和php整合:
编辑:vim /usr/local/nginx/conf/vhost/test.com.conf
加入以下代码:
location ~ \.php$
{
include fastcgi_params;
fastcgi_pass unix:/tmp/php-fcgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/test.com$fastcgi_script_name;
}
查检语法:/usr/local/nginx/sbin/nginx -t
重新加载:/usr/local/nginx/sbin/nginx -s reload
需要注意的:
nginx配制的socket要和php的 socket 路径相对应,最后需要解析的目录也要和上面server的目录相对应。
4、nginx代理:
新建立一个文件:
vim /usr/local/nginx/conf/vhost/proxy.conf
加入:
server
{
listen 80;
server_name abc.com;
location /
{
proxy_pass http://xxx.xxx.xxx.xxx;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
查检语法:/usr/local/nginx/sbin/nginx -t
重新加载:/usr/local/nginx/sbin/nginx -s reload
访问测试:
到此代理配制设置完成!