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優先級

相關文章
相關標籤/搜索