- 积分
- 24
- 威望
-
- 金钱
-
- 注册时间
- 2012-6-19
- 在线时间
- 小时
- 最后登录
- 1970-1-1
|
本机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 编辑 ] |
|