本帖最后由 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进行监控.
|