最近团队在搞前端创新,准备引入一些新技术,在同事发的邮件中,看到了淘宝基于nginx开发的静态服务器——Tengine。在“one company”的理念下,公司静态服务器颇有可能从独角兽切换到Tengine。如今提早研究下。 css
对前端而言,Tengine能带来什么? html
* 合并多个CSS、JavaScript文件的访问请求变成一个请求;
* 强制GZip压缩; 前端
以上2点对一个前端来讲,就已经颇有吸引了,不是么? nginx
Tengine在2011年末,已经成为一个开源项目。更多介绍能够参考下官网。
官网传送门:http://tengine.taobao.org/index_cn.html
本人的机器是ubuntu,因此下面的安装步骤就是ubuntu的安装步骤了。 git
1.安装tegine编译库 gcc, zlib1g-dev, libpcre3, libpcre3-dev这些库文件是必须的,会没办法编译tegine
ubuntu安装命令:
apt-get install gcc libpcre3 libpcre3-dev zlib1g-dev github
2.获取tegine,能够经过git或直接下载tar包
(1)克隆源代码:Git clone https: https://github.com/taobao/tengine ~/tengine
(2)安装包地址:http://tengine.taobao.org/download/tengine-1.3.0.tar.gz ubuntu
3.编译安装 服务器
cd ~/tengine
./configure --with-http_concat_module --with-http_sysguard_module --with-http_stub_status_module
make
make install
.net
--with-http_concat_module 开启concat模块,合并文件模块
更多编译的帮助参考下面2个文档:
nginx 编译参数详解:http://blog.lizhigang.net/archives/137
淘宝tengine文档:http://tengine.taobao.org/documentation_cn.html cdn
4.修改配置文件
vi /usr/local/nginx/conf/nginx.conf
修改对应的location配置:
location /
{
root /home/beihe/work;
concat on; //开启合并功能
autoindex on; //容许列出整个目录,nginx默认不列出文件列表
autoindex_exact_size off; //显示出文件的大概大小,单位是kB或者MB或者GB,若是是on,单位是bytes
autoindex_localtime on; //显示的文件时间为GMT时间
}
5.tengine基本命令
/usr/local/nginx/sbin/nginx 启动
/usr/local/nginx/sbin/nginx -s reload 重启
/usr/local/nginx/sbin/nginx -s stop 关闭
启动nginx的用户可能没有nginx,logs目录访问权限,可能会有下面提示错误:
could not open error log file:
open() "/usr/local/nginx/logs/error.log" failed (13: Permission denied)2011/03/21 06:09:33 [emerg] 24855#0:
mkdir() "/usr/local/nginx/client_body_temp" failed (13: Permission denied)
解决办法:
sudo chmod a+rwx -R logs
sudo chmod a+rwx -R /usr/local/nginx
6.启动tengine,体验concat合并功能。 concat功能能够在服务器端合并多个文件,好比你要下面三个js文件 http://a.tbcdn.cn/p/fp/2012/fp/layout.css http://a.tbcdn.cn/p/fp/2012/fp/dpl/dpl.css http://a.tbcdn.cn/p/fp/2012/fp/sitenav/sitenav.css 只须要经过下面一个连接,就能够得到上面3个css文件,而且合并事后的文件gzip压缩的。 http://a.tbcdn.cn/p/fp/2012/fp/??layout.css,dpl/dpl.css,sitenav/sitenav.css,logo/logo.css?t=2012080220120724.css