LNMP的反向代理,一般的朋友估计都是用不到的,但不排除某些例外的情况,福利老幺之前介绍过用Nginx反代缓存Google fonts谷歌字体给wordpress加速相信有不少朋友看过了,这些应该算是LNMP的高级应用了,而像简单CC防护这些,我们可以通过一些基本命令或设置来实现.
LNMP简单的一些防CC的办法
这里福利老幺建议大家先看看WordPress之防御频繁F5刷新类似的cc攻击这篇文章,当然,如果是其它的PHP程序建的站,也是可以直接使用的.
这里只是介绍一些简单的处理方式.
观看生成的.log日志文件,判断来路,直接301百度:
这里以mfbuluo.com为例:
- if ($http_referer ~* mfbuluo.com ) {
- rewrite ^(.*)$ http://www.baidu.com/ permanent;
- }
另外,您还可以看看lnmp笔记:nginx屏蔽或禁止指定来源网站的链接访问自己的网站来查看具体的相关的操作.这里只是一代演示代码.
观看生成的.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
- if ($http_user_agent ~* 142.54.161.3 ) {rewrite ^(.*)$ http://www.baidu.com/ permanent;}
关于iptables的相关命令,您还可以看看Linux防火墙iptables屏蔽IP等简单操作过程,一般来说,只要获得了IP,就好办了,就怕是变化的IP地址.
nginx最简单反向代理
直接看设置:
- server
- {
- listen 80;
- server_name mfbuluo.com;
- location / {
- proxy_pass http://cache.mfbuluo.com/;
- proxy_redirect off;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- }
- }
最简单的前端全缓存+反向代理脚本
- mkdir /home/cache/path -p #新建2个目录,放置缓存文件
- 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是缓存占具硬盘空间
缓存相关设置,这个玩意,其实在我们的VPS配置上,经常会用到,最常用的就是浏览器上作缓存设置了.
通过这样的设置,可以提高网站或者程序的加载速度.
以下为虚拟主机配置文件,可另存成 .conf 放置于 vhost 下面:
- server
- {
- listen 80;
- server_name mfbuluo.com; #主机名
- location / {
- proxy_cache cache_one;
- proxy_cache_valid 200 304 3d; #正常状态缓存时间3天
- proxy_cache_key $host$uri$is_args$args;
- proxy_pass http://cache.mfbuluo.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/mfbuluo.log access; #日志文件
- }
- }
df -sh 命令,查看 /home/cache 目录大小,即可测试是否缓存成功。此脚本为前端全缓存,后端动态更新后,前端不会自动修改。可手动清理cache目录下文件.
另外,这个方法,可以用纯静态的形式来防CC,如果你的动态博客,受到CC攻击,可以尝试一下.
小结
简单CC防护现在其实很多代码的作用都不大,我们通常是在网站日志里去找攻击源.反向代理这玩意,因为天朝的特殊网络管制,我们还是会经常用得上的.
不会搞 还是默认吧