淘宝开源http–tengine
Tengine的实现背景及特点
淘宝网现在已经将其服务器平台软件Tengine 开源,Tengine基于Nginx,针对大流量网站需求增加了很多功能特性和性能优化。以下沿引项目主页上的特性介绍:
- 继承Nginx的所有特性;
- 组合多个CSS、JavaScript文件的访问请求变成一个请求;
- 支持管道和syslog形式的日志和抽样;(且支持syslog-ng)
- 自动根据CPU数目设置亲缘性;(此部分在模块文档介绍部分说的非常详细)
- 监控系统的负载和资源占用从而对系统进行保护;
- 显示对运维人员更友好的出错信息,便于定位出错机器;
- 更强大的访问速度限制模块;
- backtrace模块,程序崩溃的时候可以显示出错的调用栈
Nginx与Apache的异同
Nginx和Apache一样,都是HTTP服务器软件,在功能实现上都采用模块化结构设计,都支持通用的语言接口,如PHP、Perl、Python等,同时还支持正向和反向代理、虚拟主机、URL重写、压缩传输、SSL加密传输等。它们之间最大的差别是Apache的处理速度很慢,且占用很多内存资源,而Nginx却恰恰相反;在功能实现上,Apache的所有模块都支持动、静态编译,而Nginx模块都是静态编译的,同时,Apache对Fcgi的支持不好,而Nginx对Fcgi的支持非常好;在处理连接方式上,Nginx支持epoll,而Apache却不支持;在空间使用上,Nginx安装包仅仅只有几百K,和Nginx比起来Apache绝对是庞然大物。在了解了Nginx和Apache之间的异同点后基本上就知道了Nginx作为HTTP服务器的优势所在。
Tengine的安装
1、安装pcre #支持Tengine伪静态
下载地址为http://sourceforge.net/projects/pcre/files/pcre
1# wget http://cdnetworks-kr-2.dl.sourceforge.net/project/pcre/pcre/8.21/pcre-8.21.tar.gz
2# cd /usr/local/src
3# tar zxvf pcre-8.13.tar.gz
4# mkdir /usr/local/pcre #创建安装目录
5# cd pcre-8.13
6# ./configure --prefix=/usr/local/pcre #配置
7# make
8# make install
2、安装 tengine
1# wget http://tengine.taobao.org/download/tengine-1.2.3.tar.gz
2# cd /usr/local/src
3# tar zxvf tengine-1.2.3.tar.gz
4# cd tengine
5# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-openssl=/usr/ --with-pcre=/usr/local/src/pcre-8.13
6
7# make
8# make install
9# /usr/local/nginx/sbin/nginx #启动
10# chown nobody.nobody -R /usr/local/nginx/html 此处一定要注意,权限搞不好,很容易出现403无法访问的问题
11# chmod 700 -R /usr/local/nginx/html
注意:–with-pcre=/usr/local/src/pcre-8.13指向的是源码包解压的路径,而不是安装的路径,否则会报错。经常用到的几个配置参数为
–with-http_stub_status_module
–with-http_ssl_module
–with-syslog (该块为淘宝新增模块)
–prefix=PATH
–with-pcre=DIR
–with-openssl=DIR
3、设置tengine开启启动脚本
vi /etc/rc.d/init.d/nginx #编辑启动文件添加下面内容
1#!/bin/bash
2# nginx Startup script for the Nginx HTTP Server
3# it is v.0.0.2 version.
4# chkconfig: - 85 15
5# description: Nginx is a high-performance web and proxy server.
6# It has a lot of features, but it's not for everyone.
7# processname: nginx
8# pidfile: /var/run/nginx.pid
9# config: /usr/local/nginx/conf/nginx.conf
10
11nginxd=/usr/local/nginx/sbin/nginx
12nginx_config=/usr/local/nginx/conf/nginx.conf
13nginx_pid=/usr/local/nginx/logs/nginx.pid
14RETVAL=0
15
16prog="nginx"
17
18# Source function library.
19. /etc/rc.d/init.d/functions
20
21# Source networking configuration.
22. /etc/sysconfig/network
23
24# Check that networking is up.
25[ ${NETWORKING} = "no" ] && exit 0
26[ -x $nginxd ] || exit 0
27
28# Start nginx daemons functions.
29start() {
30 if [ -e $nginx_pid ];then
31 echo "nginx already running...."
32 exit 1
33 fi
34
35 echo -n $"Starting $prog: "
36 daemon $nginxd -c ${nginx_config}
37 RETVAL=$?
38
39 echo
40 [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
41 return $RETVAL
42}
43
44# Stop nginx daemons functions.
45stop() {
46 echo -n $"Stopping $prog: "
47 killproc $nginxd
48 RETVAL=$?
49
50 echo
51 [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx.pid
52}
53
54reload() {
55 echo -n $"Reloading $prog: "
56 #kill -HUP `cat ${nginx_pid}`
57 killproc $nginxd -HUP
58 RETVAL=$?
59 echo
60}
61
62# See how we were called.
63case "$1" in
64 start)
65 start
66 ;;
67 stop)
68 stop
69 ;;
70
71 reload)
72 reload
73 ;;
74
75 restart)
76 stop
77 start
78 ;;
79
80 status)
81 status $prog
82 RETVAL=$?
83 ;;
84
85 *)
86 echo $"Usage: $prog {start|stop|restart|reload|status|help}"
87 exit 1
88esac
89exit $RETVAL
保存退出
1# chmod 775 /etc/rc.d/init.d/nginx #赋予文件执行权限
2# chkconfig nginx on #设置开机启动
3# /etc/rc.d/init.d/nginx restart
4# service nginx restart
淘宝网提供的在线文档
http://tengine.taobao.org/documentation_cn.html
目前taobao只提供了在linux下的.tar.gz包的下载,暂不支持rpm包和windows下的安装。且文件也并十分简陋,相信其后继会有完备的版本更新和比较详细文档说明。 和tengine相关的其他的页面:
淘宝开源监控工具tsar主页
2013年4月9日后记:
最新版本的tengine中加入在内存管理方面,增加了对jemalloc内存的支持 。具体编译安装方式,可以查看我的日志— jemalloc内存管理 。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/tengine/806.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.