kuailerener 发表于 2012-11-6 23:35:05

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

本机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 编辑 ]
页: [1]
查看完整版本: LNMP环境502错误终极解决方法! 再出现502你砍我!