0814防盗链访问控制代理

12.13 Nginx防盗链php

配置以下,能够和不记录日志和过时时间配置结合起来html

location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$nginx

{web

    expires 7d;数据库

    valid_referers none blocked server_names  *.test.com ;vim

#这里定义.test.com为白名单浏览器

    if ($invalid_referer) {服务器

        return 403;curl

#这里表示若是不在白名单内直接回馈403socket

    }

    access_log off;

}

 

/usr/local/nginx/sbin/nginx -t

/usr/local/nginx/sbin/nginx -s reload

curl -I -e "http://www.baidu.com/1.txt" -x127.0.0.1:80  test.com/1.gif  显示403

curl -I -e "http://www.test.com/1.txt" -x127.0.0.1:80  test.com/1.gif     显示200

 

说明配置成功

 

12.14 Nginx访问控制

限制某些ip不能访问,或者只容许一部分访问

须要制做白名单,先allowip地址,再把其余ip所有限制deny all

配置以下:

location /admin/

{

    allow 192.168.153.130;

    allow 127.0.0.1;

    deny all;

}

 

建立location指定的目录

• mkdir /data/wwwroot/test.com/admin/ (已经有了这个文件夹不用再建了)

• echo “test,test”>/data/wwwroot/test.com/admin/1.html

• -t && -s reload

• curl -x127.0.0.1:80 test.com/admin/1.html -I

• curl -x192.168.204.131:80 test.com/admin/1.html -I 这两个ip均可以访问到

 

上面配置ip也能够是ip段,就能够写成allow 192.168.153.0/24

 

若是只拒绝几个ip的访问就是

location /admin/

{

    deny 192.168.188.1;

    deny 192.168.8.8;

}

 

能够匹配正则来限制

网站被黑,数据库被盗窃,没有禁止上传图片的php解析

这样能够把访问的URL中带有abc或者image的字符串,而且为php请求的拒绝访问

location ~ .*(abc|image)/.*\.php$

{

        deny all;

}

 

测试:

/usr/local/nginx/sbin/nginx -t

/usr/local/nginx/sbin/nginx -s reload

mkdir /data/wwwroot/test.com/abc

echo "111" > /data/wwwroot/test.com/abc/1.php

curl -x127.0.0.1:80 test.com/abc/1.php -I

结果为403拒绝访问

echo "111" > /data/wwwroot/test.com/abc/1.txt

curl -x127.0.0.1:80 test.com/abc/1.php -I

结果200能够访问,实验成功,禁止了abcphp解析

 

 

根据user_agent限制,用的不少

需求:受到cc攻击,要禁掉百度蜘蛛,想作被隐藏的网站

if ($http_user_agent ~ 'Spider/3.0|YoudaoBot|Tomato')

{

      return 403;

}

这里~指匹配符号,只要有Spider/3.0YoudaoBotTomato字符串的直接被拒绝,返回403

• deny allreturn 403效果同样

实验:

/usr/local/nginx/sbin/nginx -t

/usr/local/nginx/sbin/nginx -s reload

模拟user_agent的方法:

-A 随意指定本身此次访问所宣称的本身的浏览器信息

curl -A “Tomatoabcabcabc”-x127.0.0.1:80 test.com/abc/1.txt

显示为403拒绝访问

 

若是关键词大小写有改动就恢复200,须要忽略大小写就~*~后面加*

 

12.15 Nginx解析php相关配置

•vim /usr/local/nginx/conf/vhost/test.com.conf配置以下:

location ~ \.php$

    {

        include fastcgi_params;

        fastcgi_pass unix:/tmp/php-fcgi.sock; (此处错误出现502,找不到sock

        #fastcgi_pass 127.0.0.1:9000

        #fastcgi_pass 两种监听格式,可是要保证Nginxphp-fpm中格式一致

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name;

        #这里的地址和最上面的root保持一致

    }

 

• fastcgi_pass 用来指定php-fpm监听的地址或者socket

• php文件目录usr/local/php-fpm/var/php-fpm.logsock地址要写到虚拟主机配置文件fastcgi_pass

不监听sock换成监听ip和端口,两个配置文件修改后保持一致不然502,须要重启

 

netstart -lntp 查看监听端口

测试:

vim /data/wwwroot/test.com/3.php  

写入<?php   phpinfo();

curl -x127.0.0.1:80  test.com/3.php   出现不能解析

配置后再次curl能够解析

 

502报错问题:

检查虚拟主机配置文件sockphp文件目录定义的sock是否一致

 

修改fastcgi_pass后报错502

nginx错误日志:cat /usr/local/nginx/logs/nginx_error.log

vim /usr/local/php-fpm/etc/php-fpm.conf 查看php文件目录定义的sock

修改成监听ip端口

 

查看端口是否监听

 

而后去修改虚拟主机配置文件

 

两边配置文件修改完成,这时curl -x127.0.0.1:80  test.com/3.php解析成功

 

此外502还有一种可能,php-fpm资源耗尽,查询很慢,解决为优化

 

12.16 Nginx代理

用户须要访问web服务器,须要找一个中间者,中间者与两面都互通,就能作一个代理者

中国到美国很慢,到香港快,香港到美国快,就能够经过香港代理访问美国服务器

 

建立新的配置文件

该虚拟主机只用做代理服务器,不须要访问本地文件,因此不须要设置站点根目录

• cd /usr/local/nginx/conf/vhost/

• vim proxy.conf //加入以下内容

 

server

{

    listen 80;

    server_name ask.apelearn.com;

 

   location /

    {

        proxy_pass      http://121.201.9.155/;

        #这里是告诉Nginx代理服务器,真正要被访问的web服务器ip是多少

        proxy_set_header Host   $host;

        #Host指的是要访问的域名servername,就是代理服务器真正访问的域名ask.apelearn.com

        proxy_set_header X-Real-IP      $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

  }

}

 

代理先后对比

curl -x127.0.0.1:80 ask.apelearn.com/robots.tx

显示为404

/usr/local/nginx/sbin/nginx -t

/usr/local/nginx/sbin/nginx -s reload

curl -x127.0.0.1:80 ask.apelearn.com/robots.txt

显示成功

这里测试是指经过本地ip访问到远程站点,这里设置的代理服务器是虚拟机,web服务器是阿铭论坛

出现代理需求就定义远程服务端,就是web服务器的ip

 

扩展

http://ask.apelearn.com/question/9109502问题汇总 

http://blog.lishiming.net/?p=100location优先级

相关文章
相关标签/搜索