tengine初探

系统越来越大,代码越来越多

陷入恐慌,速度越来越慢,不满越来越多,

话说tengine狠牛逼,高并发,jscss合并等特点,也为学习新东西故 今天试试。

taobao的tengine上没有安装文档,因为基于nginx所以估计可以按照nginx的安装方式安装吧。

高手都喜欢编译安装,我懒人低手喜欢类似yum的安装方法,这样有更新时比较方便。

tengine没有yum源所以只能手动安装了。

借鉴:http://www.linuxde.net/2011/12/4279.html文章

在centos6.2

安装 pcre,这是perl库,兼容perl5的正则表达规则,说是为了使tengine支持伪静态,想想也是,要通过正则来url重写嘛
下载 wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.31.zip
建安装目录 mkdir pcre831 防止以后升级带个版本号吧,狗屎想法
指定安装路径将下载的包解压,进入,然后配置./configure --prefix=/opt/sws/program/pcre831
编译:make, 提示错误libtool参数错误,先安装之 yum -y install libtool
谔谔 好像进行不下去了
试试这篇的办法:http://my.oschina.net/itbeihe/blog/73304,不用apt-get 用yum命令爽多了

下载tengine的包,并解压
wget http://tengine.taobao.org/download/tengine-1.4.1.tar.gz

tar zxvf tengine-1.4.1.tar.gz

进入解压目录,配置
./configure --prefix=/opt/sws/program/tengine --with-http_concat_module --with-http_sysguard_module --with-http_stub_status_module

通不过,说PCRE木有
就: yum -y install pcre #说已经安装了最新的,
只好:yum -y install pcre-devel # 再配置 即可成功
make #貌似ok
make install #超级快我以为出错了,暂时不管,先跑起来再说
修改配置文件
vi /opt/sws/program/tengine/conf/nginx.conf

以下引用:

修改对应的location配置:
location / {
root /home/beihe/work8 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
要想合并css和js的话得按照以上链接拼装了

前端显示时的链接拼接后台代码要整理成通用的函数或接口,组装成上面这种链接形式

差不多类似:

function getCssjs($files){
     if(is_array($files)){
         //todo:
    }else{
        //todo
    }
};
时间: 2025-01-13 12:56:10

tengine初探的相关文章

隐藏 tengine 和 tomcat 版本号

安装完软件一般第一时间都是关闭其版本信息和其他信息,一些黑客会通过该软件暴露出来的信息针对性的入侵,为了服务器的安全这些信息一定要及时关闭 一.隐藏Tengine的版本信息 先来访问看看版本号暴露出的信息: 在上图中可以看到,Server name,Access time以及URL和下面的Tengine的版本号都被显示了出来,那么如何隐藏这些信息呢?修改nginx.conf配置档. 在http{}中加入下列参数即可 vim /usr/local/nginx/conf/nginx.conf htt

graphviz dot初探

graphviz dot初探 简介 现在文档都用markdown保存到github.gitlab这种代码仓库.markdown遇到最大的问题就是对图片的引用, 直接用工具绘制的图片可以引用,但是这样没法像md文件那样在git仓库中进行版本管理,而且既然文档用了描述语言, 引用图片源文件能用描述语言就更好了. dot是graphviz的一种描述语言,可以通过graphviz提供的命令行工具生成图片文件. 安装 用gentoo(prefix)安装graphviz直接emerge即可,除了默认的选项,

把《c++ primer》读薄(4-2 c和c++的数组 和 指针初探)

督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 问题1.我们知道,将一个数组赋给另一个数组,就是将一个数组的元素逐个赋值给另一数组的对应元素,相应的,将一个vector 赋给另一个vector,也是将一个vector 的元素逐个赋值给另一vector 的对应元素: //将一个vector 赋值给另一vector,使用迭代器访问vector 中的元素 vector<int> ivec(10, 20); vector<int> ivec1; for (vecto

ASP.NET ViewState 初探 (1)

ASP.NET ViewState 初探 Susan WarrenMicrosoft Corporation 2001 年 11 月 27 日 与刚接触 ASP.NET 页面的开发人员交谈时,他们通常向我提出的第一个问题就是:"那个 ViewState 到底是什么?"他们的语气中流露出的那种感觉,就象我来到一家异国情调的餐馆,侍者端上一道我从未见过的菜肴时的那种感觉 - 既疑惑不解,又充满好奇.但肯定有人认为它不错,否则就不会提供了.所以,我会先尝一尝,或许会喜欢上它,尽管它看上去的确

于EYE candy滤镜应用于补间实例初探

滤镜 在刚接触EYE candy滤镜时,我就曾经对几个常用滤镜进行实例讲解,在讲解fire(火)滤镜的时候,用到的实例就是燃烧火焰字的动画,当时是用逐帧制作来实现效果的.后来在写<FW网页设计专家门诊>的时候,也沿用了这一方法,重点是介绍fire滤镜,而不是动画的制作过程. 在看到文字颜色渐变动画的相关帖子时,忽然想起来其实eye candy也可以和FW的内置效果一样,用补间实例来实现动画效果,比逐帧改滤镜参数要容易的多. 就拿制作燃烧火焰字的例子来看: 1.输入文字,设置渐变修饰一下,按F8

ASP.NET ViewState 初探 (1) 转自msdn

asp.net ASP.NET ViewState 初探 Susan WarrenMicrosoft Corporation 2001 年 11 月 27 日 与刚接触 ASP.NET 页面的开发人员交谈时,他们通常向我提出的第一个问题就是:"那个 ViewState 到底是什么?"他们的语气中流露出的那种感觉,就象我来到一家异国情调的餐馆,侍者端上一道我从未见过的菜肴时的那种感觉 - 既疑惑不解,又充满好奇.但肯定有人认为它不错,否则就不会提供了.所以,我会先尝一尝,或许会喜欢上它,

WebService初探(推荐)〔开心本人特别看好WebService〕

web Web Service初探(推荐)<br><br><br> <br>简介<br><br>回顾过去的六年,难以想象如果没有互联网的话,网络计算会变成什么样.更早的超文本模式失败了,而互联网成功了,这其中最基本的原因可以归结为:互联网简单且无处不在.从服务提供者(如网上商店)的角度来看,只要你会打字,你就可以接受服务.从服务API的角度来看,互联网上绝大多数的活动都可以由三种方法(GET, POST, 和PUT ) 以及一种标记语

Microsoft Visual Studio.NET及Borland Delphi6初探

visual Microsoft Visual Studio.NET及Borland Delphi6初探 最近安装上了Visual Studio.NET和Borland Delphi6这两个号称下一代编程环境的东东,感觉新东西实在不少,下面就说说我的感觉. 首先说Visual Studio.NET的安装.Microsoft在这方面的霸气一直不改,我还记得当初装Visual C++5.0的时候,本来我已经有了中文版的IE3.0,可是他一定要我先装一个英文版的IE3.01,否则就不允许继续,真是不给

COM技术初探(三):一个真正的COM

一.实现ISmipleMath,IAdvancedMath接口和DllGetClassObject() 1.1 实现ISmipleMath和IAdvancedMath接口 让我们将原来的CMath 类(CMath其实就是"COM技术初探(二)COM基础知识"里的那个CMath类)修改来实现ISmipleMath接口和IAdvancedMath接口. 修改的地方如下: 1) Math.h文件 /*@**#---2003-10-29 21:33:44 (tulip)---#**@ #inc