VPS侦探论坛

 找回密码
 注册
查看: 4403|回复: 0

LNMP环境502错误终极解决方法! 再出现502你砍我!

[复制链接]
发表于 2012-11-6 23:35:05 | 显示全部楼层 |阅读模式

本机VPS需要用nginx proxy_cache反向代理缓存?真的有必要吗?

发现很多人在同vps机子上的网站都是用nginx做反向代理+静态文件缓存,

我想说难道nginx不对本机子上的文件进行缓存会比进行缓存后的效率差很多吗??

如静态文件来比较吧:

nginx不缓存直接读取同机子图片文件 (并发数1000)
nginx缓存后直接读取同机子图片文件 (并发数2000???-3000??)

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

但今天不讨论nginx对静态文件的处理能力!给大家用nginx本身的功能去防止502错误....跟502说88!!
=======================================================================
         介绍下常会遇到的网页502错误问题,

502错误原因是由php后端进程跟不上前端web服务器才会出现的..

不管你php子进程设置很多也好,在同时高并发下还是会出现502错误的,

我测试压phpinfo文件,php进程开启60个..发1000并发去压,打开网页确实是没什么问题,但看并发日志,502状态却占10%

也就是说虽然nginx能处理这么多并发,但后端php根本就反应不过来..哪怕开再多php进程,打开网站显示正常,但你仔细看过网页状态码的日志吗


还有其他原因:

php进程足够多的话又要考虑mysql数据库等再后一级提供服务的服务处理跟不上

我想百分之90的网站都不会只用纯php程序吧,都会带上mysql数据库的,

我测试过 1G内存双核VPS 同时去压没改过任何代码的默认wordpress程序.只能说效果很糟糕, 30并发还没什么事,但50-80左右并发就检测到502状态占了20%...

如果用nginx拿来缓存动态带数据库的php程序文件就很不错了,

缓存一次动态php文件后就算突然来个百倍千倍的并发数还是可以处理掉

而且也不会占用到后端php进程和mysql的性能..也绝不会不会出现502等错误.

减少服务器性能最少百分之70以上..  

当然你会觉得说白了不是把网站生成静态吗, ,,

但你想一下把网站生成一次静态需要动用多少资源,,但内容更新了还要再从新去生成,,

而nginx是有人访问才做缓存..也可以设置时间自动清除缓存,还可以记录200.301.304.404等等所有的网页返回状态码进行设置缓存时间,,

nginx的反向代理缓存效率和网站程序默认生成静态系统来说, 你会选择哪一个呢??

当然nginx缓存效果同时还非常有效防止了网站被DDOS的攻击,,.,
www.kanbei.net 原创出处!转载注明!
只开启2个nginx进程处理静态文件

每秒处理掉5000-10000并发数, 2.4G单核CPU 占用才到20-30%..一个nginx进程才才占用内存10-20M 左右.

而且不会出现任何错误,因为开启缓存后nginx并不需要转接任何数据给后端而直接就返回给客户端..

试问如果你是攻击者,你需要多少肉鸡资源才能把一台仅仅是256或512内存vps下用nginx做前段的纯静态文件环境给搞垮掉?

[ 本帖最后由 kuailerener 于 2012-11-7 00:03 编辑 ]
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2024-9-23 23:29 , Processed in 0.024800 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表