tengine 是淘宝开源的 nginx 修改版本,添加了一些新的特性,官方网站在此 http://tengine.taobao.com ,我习惯使用 dotdeb 的 nginx ,因此按照 dotdeb 编译 nginx 的参数编译了下 tengine 代替 nginx .
安装编译环境
1
| apt-get install build-essential
|
安装 dotdeb 的 nginx 可参考Debian 下 nginx + php-fpm 的安装配置
获取 tengine 的源代码
1 2
| wget -c http://tengine.taobao.org/download/tengine-1.4.2.tar.gz tar zxvf tengine-1.4.2.tar.gz
|
获取第三方模块
nginx 第三方库可以从这个网址下载
http://wiki.nginx.org/3rdPartyModules
dotdeb 安装了几个第三方库,但是有一些我从这个页面上没有找到,所以只下载了其中的 5 个,放置在了 /root/modules 目录中,结构如下
nginx-auth-pam nginx-echo ginx-upstream-fair nginx-cache-purge nginx-http-substitution-filter
一些编译需要的附加模块
编译 tengine 及 这5个第三方库需要一些附加库,依次安装
1 2 3 4 5 6 7
| apt-get install libpcre3-dev apt-get install libssl-dev apt-get install libxml2-dev apt-get install libxslt1-dev apt-get install libgd2-xpm-dev apt-get install libgeoip-dev apt-get install libpam-dev
|
这几个库不是很好找,我的 sources.list 是这样的
1 2 3 4 5 6 7 8 9 10 11
| deb http://mirrors.ustc.edu.cn/debian/ squeeze main deb-src http://mirrors.ustc.edu.cn/debian/ squeeze main
deb http://security.debian.org/ squeeze/updates main deb-src http://security.debian.org/ squeeze/updates main
deb http://mirrors.ustc.edu.cn/debian/ squeeze-updates main deb-src http://mirrors.ustc.edu.cn/debian/ squeeze-updates main
deb http://packages.dotdeb.org squeeze all
|
开始编译
1 2 3
| cd tengine-1.4.2`
./configure --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-pcre-jit --with-debug --with-file-aio --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_realip_module --with-http_secure_link_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-ipv6 --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module --add-module=/root/modules/nginx-auth-pam --add-module=/root/modules/nginx-echo --add-module=/root/modules/nginx-upstream-fair --add-module=/root/modules/nginx-cache-purge --add-module=/root/modules/nginx-http-substitution-filter --with-http_upstream_check_module --with-http_concat_module --dso-path=/etc/nginx/modules
|
其中新加入的几个参数是
--with-http_upstream_check_module
是后端服务器主动健康检查模块
--with-http_concat_module
是 js,css等文件合并模块
--dso-path
指定动态 modules 所在目录,放置在 /etc/nginx/modules
替换 nginx
编译完成后,将 objs 中的 nginx 代替 dotdeb 中的即可。
1 2
| mv /usr/sbin/nginx /usr/sbin/nginx.before.tengine mv /root/tengine-1.4.2/objs/nginx /usr/sbin/
|
其他使用方式和 dotdeb 一样
用 nginx -V
可以查看到 nginx 已经被替换为 tengine 。