切記:配置完成後,需要刷新nginx配置,以下2條命令都可以:
/root/lnmp reload /etc/init.d/nginx reload
一、最簡單的反向代理腳本(只要修改2個網址,存成conf文件放置於vhost下):
server { listen 80; server_name www.vps.gl; location / { proxy_pass http://cache.vps.gl/; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
二、最簡單的前端全緩存,反向代理腳本
#新建2個目錄,放置緩存文件: mkdir /home/cache/path -p mkdir /home/cache/temp -p
修改 /usr/local/nginx/conf/nginx.conf 新增以下代碼,主要是緩存相關設置,請放置於 http{ ##這裏 } 中,一般加在 log_format 上面或下面均可:
client_body_buffer_size 512k; proxy_connect_timeout 5; proxy_read_timeout 60; proxy_send_timeout 5; proxy_buffer_size 16k; proxy_buffers 4 64k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; proxy_temp_path /home/cache/temp; proxy_cache_path /home/cache/path levels=1:2 keys_zone=cache_one:500m inactive=7d max_size=30g; #500m是內存佔用,7d是7天無訪問刪除,30g是緩存佔具硬盤空間
以下爲虛擬主機配置文件,可另存成 .conf 放置於 vhost 下面:
server { listen 80; server_name www.vps.gl; #主機名 location / { proxy_cache cache_one; proxy_cache_valid 200 304 3d; #正常狀態緩存時間3天 proxy_cache_key $host$uri$is_args$args; proxy_pass http://cache.vpsmm.com/; #反代的網站 proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; expires 10d; #默認10天緩存 access_log /home/wwwlogs/vpsmm.log access; #日誌文件 } }
點擊幾下網站,df -sh 命令,查看 /home/cache 目錄大小,即可測試是否緩存成功。此腳本爲前端全緩存,後端動態更新後,前端不會自動修改。可手動清理cache目錄下文件。這個方法,可以用純靜態的形式來防CC,如果你的動態博客,受到CC***,可以嘗試一下。
三、LNMP簡單的一些防CC的辦法
觀看生成的.log日誌文件,判斷來路,直接301百度:
if ($http_referer ~* mi5.gov ) { rewrite ^(.*)$ http://www.baidu.com/ permanent; }
觀看生成的.log日誌文件,判斷瀏覽器特徵碼,直接301百度:
if ($http_user_agent ~* firefox4.0 ) { rewrite ^(.*)$ http://www.baidu.com/ permanent; }
根據特徵碼,直接查找.log文件,並iptables封死相應IP:
cat com.log | grep 'Mozilla/5.0' | awk '{print "iptables -I INPUT -p tcp --dport 80 -s ", $1, "-j DROP"}'| sort -n | uniq | sh