Nginx反向代理&前端全缓存相关配置教程_LNMP适用

2012年05月15日 2629 字数 126385 阅读 39 评论 标签:Education · nginx · LNMP · 反向代理 · 前端缓存

文章导读

 最近一直在研究这方面的配置,只是脚本比较复杂。在网上用力找了几天,主要教程还是那些东西。并且有点乱七八糟,小夜进行了一些整理。告诉你最简单的方法,来实现这二个方面的内容:

  • nginx最简单的反向代理脚本
  • nginx最简单的前端缓存反向代理脚本
  • 只提供简单应用,自动更新等操作不讲解
  • 最简单的脚本,容易学会到渣

切记:配置完成后,需要刷新nginx配置,以下2条命令都可以:

/root/lnmp reload
/etc/init.d/nginx reload

一、最简单的反向代理脚本(只要修改2个网址,存成conf文件放置于vhost下):

server
{
listen          80;
server_name     vpsmm.com;
location / {
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;
}
}

二、最简单的前端全缓存,反向代理脚本

#新建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     vpsmm.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.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

小夜博客仅做资料收集,不对商家任何信息及交易做信用担保,购买前请注意风险,有交易纠纷请自行解决。

已有 39 条评论

  1. 路过哥 路过哥

    来顶一下小夜MM,配置收藏了

  2. 无线网络密码破解 无线网络密码破解

    夜总 这个能移植到dd-wrt或者openwrt路由器上面吗?

    1. 小夜 小夜

      理论上是可以的,只要nginx就可以用的。不过我没试过。

    2. 无线网络密码破解 无线网络密码破解

      这个要是能移植到路由上 那就好了,什么免北岸都是浮云

    3. 小夜 小夜

      没用,我这儿10M上下行,可不开80端口。

  3. 婷婷 婷婷

    谢谢,很受用啊

  4. 四师兄 四师兄

    来学习一下

  5. vps评测 vps评测

    学习了

  6. tiger tiger

    如果是论坛,全缓存,要怎么设置

    1. 小夜 小夜

      这个就是全缓存。不分论坛、静态页面,还是神马程序。把访问的所有文件,都以md5的形式,存在缓存中。如果不清理,就会一直显示缓存中的内容。

  7. tiger tiger

    我的问题是,论坛做全缓存,不更新怎么行? 该如何设置 会更新。

  8. 敏

    server {
    listen 81;
    server_name opac.inlibrary.gd;
    location / {
    proxy_pass http://10.1.40.173/;
    proxy_redirect off;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    subs_filter_types text/html;
    subs_filter '/head.htm' 'http://127.0.0.1/head.js' gi;
    subs_filter '/end.htm' 'http://127.0.0.1/end.js' gi;
    }

    这个存在什么问题,为什么会nginx: [emerg] "server" directive is not allowed here in ./nginx/conf/nginx.conf:48?(81端口反向由48行开始)

    1. 小夜 小夜

      我也想帮您,可我真不知道什么原因,我也没遇到过这个问题。

    2. 楼下不吃夜宵 楼下不吃夜宵

      是不是这个问题?
      isten [::]:81;
      试试。

  9. 找平板 找平板

    对然不知道用来缓存干吗,但还是觉得很厉害的样子。

    1. 小夜 小夜

      淘宝客,小偷,以及一些其它的项目,都有可能用得到。这个就是就是生成html文件没区别了,随后会想办法来实现,实时更新功能。

  10. Xss Xss

    可以用来对付ZENCART 之类的需要验证登录后购买那样的商城网站么

  11. 真高端 真高端

    只要稍微改一下,允许缓存的文件类型(比如JPG,GIF)就可以了,动态的PHP不缓存

  12. www4074 www4074

    能把notepad++发一份到我的邮箱吗???怕网上打的不安全

    1. 小夜 小夜

      downg.com 我就在这儿下载的

  13. 中华 中华

    这样配置后,php页面动态变化的内容是不是完全静态了?

  14. 让青春继续 让青春继续

    #新建2个目录,放置缓存文件:
    这里需要加上参数 -p,如下:
    mkdir -p /home/cache/path
    mkdir -p /home/cache/temp

  15. andy andy

    夜总,后端更新,前端怎么实现实时更新??
    然后怎么加语句实现只对特定的文件缓存,比如只缓存图片等。

  16. soutaobang soutaobang

    非常好,如何定时清理缓存哇。

    1. 小夜 小夜

      可以设置自动清理命令,例如:find 然后 del 然后,隔10分钟或几小时,执行一次。

    2. 星空电影 星空电影

      有木有详细命令?

  17. vps vps

    什么是反向代理啊,小夜解释下!

    1. 小夜 小夜

      简单的说,反向代理,就是当你访问AIP的时候,中通过A中转,实际访问的是BIP。这样可以加速,例如:电信和联通之间,美国-香港-大陆之间。nginx此项技术还包括一些高级应用,例如均衡负载或缓存技术等等,被新浪腾讯等广泛应用。我这里讲的只是2个最简单最基础的案例。

  18. 梦梦 梦梦

    早就听说过反代,想学习,博主有更详细的教程推荐吗?

  19. 星空电影 星空电影

    如何自动更新呢?

  20. 龙龙 龙龙

    发现很多人在同vps机子上的网站都是用nginx反向代理+缓存,
    我想说的是难道nginx不对本机子上的文件进行缓存会比进行缓存后的效率差很多吗??

    如静态文件来比较吧:
    nginx不缓存直接读取同机子图片文件 (并发数1000)
    nginx缓存后直接读取同机子图片文件 (并发数2000???-3000??)

    我想nginx就算处理不缓存的本地静态文件效率还是很高的

    当然如果nginx拿来缓存动态php程序文件确实是很不错的,
    缓存一次动态php文件后就算来百倍千倍的并发数还是可以处理掉

    而且也不会占用到后端php进程性能,也不会容易出现502等错误.减少服务器性能最少百分之70以上..

    当然也有弊端,如果php网页的url长期有人访问(如首页,栏目页,带评论内容页) 这些都显示第一次缓存的内容

    这样就很不符合情理了,对用户来说体验很不好,自己手动清除那就没必要了,有时间也不去折腾这玩意...

  21. 小邓 小邓

    小夜我的怎么出现
    nginx: [emerg] host not found in upstream "cache.xxx.com" in /usr/local/nginx/conf/vhost/xxx.com.conf:16

    proxy_pass http://cache.vpsmm.com/; #反代的网站
    这句话是什么意思啊? 既然是缓存在本机 为什么还要反向到http://cache.vpsmm.com/这个域名??? http://cache.vpsmm.com/这个网站是干嘛的啊????

  22. 小邓 小邓

    我怎么看不明白O_O

  23. 全高清影院 全高清影院

    请问上面的配置已经缓存图片.css.js等文件了吗?

  24. koltchfng koltchfng

    We wanted to necessitate some duration to highlight some of the renowned shops ray ban outpouring there that classify supported FOLLOW to save so nationwide and are doing intriguing things in their parts of the hinterlands or the life ralph lauren. There are capacious proper retailers into the open there, numerous of which are cultivating trends once they hit the larger market. It's so tenacious in the service of our stamp and our retailers to louboutin constantly be evolving. We all entertain so much be fond of due to the really that the vigour we activity in and the regular level focus on of pushing the pep forward. Sufficiently jibba jabba, today's on is on ESSENTIAL ADVANCE CO in Richmond, mulberry VA.
    These sandals to Swedish Hasbeens necessity a species of chunky calm scarpe hogan to them. I bent the wind and the points that the chunky dirty is ubiquitous to be veritably mild to ramble in. They bent look well-behaved with so sundry of my toms outlet dresses as a remedy for summer. In stimulus you are wondering with respect to the ethics behind the Swedish Hasbeens maker, they are hushed handmaking their shoes in the programmed personality using abercrombie ecologically all get cracking b attack truthful soup噊n leather. Their handiwork methods are pass to both people and planet hollister uk.
    The text of resemblance between males and females is constantly supervised louboutin pas cher scrutiny, at any speed men arise to be left-wing discernible of the fatshion equation altogether. A trawl with the scholarship search engines pro any signs of empowered masculine louboutin pas cher fatshion returned zilch, there’s no ‘curve’ office, no catwalks, no coup d'倀at, why?It’s not a uncertainty of ratios, there are an abundance of virile the rage blogs chicanery there and they are proper as impressive, hollister dahling. The accustomed lank boulevardier can look fresh to traditional fash blog inspo from the likes of Neat Lou, The Continuously In someone's bailiwick, The Sartorialist and Closet Freaks. It’s benighted to send down grown men be enduring louboutin no detrimental in way, our deem is they’re afraid, shunned, typecast.

  25. ectoall ectoall

    确实不错,整理的很有用啊!

    特别是反向代理的部分!

  26. 新浪微博rss 新浪微博rss

    但是有个问题,我的网站,不知道为什么有办法网页无法缓存下来。

评论已关闭