容器技术交流

 找回密码
 立即注册
查看: 8778|回复: 8

[经验分享]淘宝Tengine 详细优化指南

[复制链接]
发表于 2011-12-11 14:06:00 | 显示全部楼层 |阅读模式
本帖最后由 happyhtq 于 2011-12-11 14:09 编辑

本文首发地:http://blog.wtcoder.net/index.php/archives/138/

本文参考自Tengine官方指南

      大家可能知道如何将webServer切换至Tengine, 但是为什么要切换,切换了会带来哪些优势呢?

看完这篇文章你就知道了 ,不得不说这是一个 非常cool 的扩展开发 :)


注:本文所提及修改,如无特殊注明均在nginx配置文件中,默认位置:/usr/local/nginx/conf/nginx.conf




重磅功能一:CDN Combo,组合Javascript 以及 Css文件
使用方法:

    a)以两个问号(??)激活combo

    b)多文件之间用半角逗号(,)分开

    c)用一个?来便是时间戳

Example:

http://res.wtcoder.net/??/js/index.js,/js/common.js?t=20111211114711.js

作用:

遵循Yahoo!前段优化准则第一条:减少HTTP请求发送次数


提示:
http协议是基于tcp方式连接,tcp连接必须经过客户端与服务端的“3次握手”来确立链接。而建立tcp连接是需要消耗一定系统资源的,所以大家可以想象一下这一条为什么这么重要了吧,一次可能不明显,但是1年下来可以节省多少资源。 嘿嘿


重磅推荐二: 强制gzip压缩

默认开启的功能


作用:

Tengine会在用户浏览器没有在请求中带Accept-Encoding时通过下列方式判断是否gzip,保证只要支持gzip的浏览器中都会被覆盖到.



    a)如果浏览器没有带有Accept-Encoding且cookie中没有gzip支持标识

    b)通过User-Agent判断是否支持

    c)发送一段js脚本,脚本中请求一个永远都gzip的url

d)如果该段内容被执行,则写入一个cookie值标识此浏览器支持gzip



重磅推荐三: 过载保护(请先阅读“提示”部分)

在http{}段添加
sysguard on; sysguard_load load=4 action=/high_load.html; #系统负载,超过设置值了就跳转到action设置的也页面sysguard_mem swapratio=10% action=/mem_high.html #内存负载,超过设置值了就跳转到action设置的页面


作用:

可以在系统超负载时友好提示用户,增强用户体验。(大家在使用淘宝的时候应该见过类似页面吧,反正我见过。 嘿嘿)

提示:

大家可以通过 top命令来查看当前系统负载,最好是借助第三方工具进行服务器负载监控,进行数天或1个月的监控,分析出准确适合的运营数据后再设置过载保护功能。


修改nginx默认使用的消息模型


添加方法:
在events {}段添加


use epoll;


作用:

使用linux内核最新支持的epoll句柄处理模型,对于大流量的网站这个配置开启提升会非常大。



(注:确定系统内核版本>=2.5.44 最好是2.6+, 查看方式uname -a)


隐藏webServerName


添加方法:

在http{} 段内添加


server_tag off;




server_tag IIS/6.0;


作用:

隐藏真实web服务器名称,防止hacker有针对性的突破



nginx进程设置简化


添加方法:

修改配置文件中的worker_process为以下

  


worker_process auto;worker_cpu_affinity auto;



作用:
在不同硬件环境下对于nginx本身的生产进程优化会由webserver自动调整,而无需专业知识进行调优。



扩展4xx,5xx错误提示(LuManager用户可以略过此项)



因为LuManager已通过虚拟主机默认配置集成此功能 在每个虚拟主机的errorfiles目录下。



添加方法:


在http{} 段内添加


server_info on;server_admin xxx@gmail.com;



作用:

展示管理员联系方式以便用户反馈错误



扩展的nginx命令行参数


方法:
切换
/usr/local/nginx/sbin

列出当前已编译的模块


./nginx -m

列出当前支持的指令


./nginx -l


日志抽样支持

方法:

Example:access_log xxxx ratio=0.01;


作用:

减少日志数量,小容量VPS用户的福音。


PS:

关于运维工具方面,淘宝还提供了另外一个开源工具Tsar对Tengine进行监控.



发表于 2011-12-11 14:31:23 | 显示全部楼层
非常不错!
发表于 2011-12-11 14:43:54 | 显示全部楼层
这文章一出估计又要有一帮要换tengine的了。
发表于 2011-12-11 18:57:37 | 显示全部楼层
这个专业,佩服
发表于 2011-12-12 21:45:55 | 显示全部楼层
完全是天书,谁能告诉下大概是啥意思,怎么跟淘宝还挂上了?
发表于 2012-3-12 23:00:41 | 显示全部楼层
呵呵是很强大啊啊
发表于 2012-3-18 18:26:17 | 显示全部楼层
不是很懂啊
发表于 2012-3-24 16:22:23 | 显示全部楼层
锦瑟 发表于 2011-12-11 14:43
这文章一出估计又要有一帮要换tengine的了。

确实·····正准备回复一下要求出个LuTnmp,呵呵····自学LFS中,求人不如求己······慢慢来····
发表于 2012-4-24 22:19:32 | 显示全部楼层
很棒,必须留言帮顶!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Archiver|URLOS ( 粤ICP备18087780号 )

GMT+8, 2024-4-20 07:25 , Processed in 0.030136 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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