淘宝开源http–tengine

2012年2月17日 发表评论 阅读评论

 

Tengine的实现背景及特点

淘宝网现在已经将其服务器平台软件Tengine 开源,Tengine基于Nginx,针对大流量网站需求增加了很多功能特性和性能优化。以下沿引项目主页上的特性介绍:  

  • 继承Nginx的所有特性;
  • 组合多个CSSJavaScript文件的访问请求变成一个请求;
  • 支持管道和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

wget  http://cdnetworks-kr-2.dl.sourceforge.net/project/pcre/pcre/8.21/pcre-8.21.tar.gz

# cd /usr/local/src

# tar zxvf pcre-8.13.tar.gz

# mkdir /usr/local/pcre   #创建安装目录

# cd pcre-8.13

# ./configure --prefix=/usr/local/pcre   #配置

# make

# make install

2、安装 tengine 

wget http://tengine.taobao.org/download/tengine-1.2.3.tar.gz 

# cd /usr/local/src

# tar zxvf tengine-1.2.3.tar.gz

# cd tengine

# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-openssl=/usr/ --with-pcre=/usr/local/src/pcre-8.13

  注意:--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

# make

# make install

# /usr/local/nginx/sbin/nginx   #启动

# chown nobody.nobody -R /usr/local/nginx/html      此处一定要注意,权限搞不好,很容易出现403无法访问的问题

# chmod 700 -R /usr/local/nginx/html

3、设置tengine开启启动脚本

vi /etc/rc.d/init.d/nginx  #编辑启动文件添加下面内容

#!/bin/bash

# nginx Startup script for the Nginx HTTP Server

# it is v.0.0.2 version.

# chkconfig: - 85 15

# description: Nginx is a high-performance web and proxy server.

# It has a lot of features, but it's not for everyone.

# processname: nginx

# pidfile: /var/run/nginx.pid

# config: /usr/local/nginx/conf/nginx.conf

nginxd=/usr/local/nginx/sbin/nginx

nginx_config=/usr/local/nginx/conf/nginx.conf

nginx_pid=/usr/local/nginx/logs/nginx.pid

RETVAL=0

prog="nginx"

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 0

[ -x $nginxd ] || exit 0

# Start nginx daemons functions.

start() {

if [ -e $nginx_pid ];then

echo "nginx already running...."

exit 1

fi

echo -n $"Starting $prog: "

daemon $nginxd -c ${nginx_config}

RETVAL=$?

echo

[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx

return $RETVAL

}

# Stop nginx daemons functions.

stop() {

echo -n $"Stopping $prog: "

killproc $nginxd

RETVAL=$?

echo

[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx.pid

}

reload() {

echo -n $"Reloading $prog: "

#kill -HUP `cat ${nginx_pid}`

killproc $nginxd -HUP

RETVAL=$?

echo

}

# See how we were called.

case "$1" in

start)

start

;;

stop)

stop

;;

reload)

reload

;;

restart)

stop

start

;;

 

status)

status $prog

RETVAL=$?

;;

*)

echo $"Usage: $prog {start|stop|restart|reload|status|help}"

exit 1

esac

exit $RETVAL

  保存退出

 

# chmod 775 /etc/rc.d/init.d/nginx   #赋予文件执行权限

# chkconfig nginx on   #设置开机启动

# /etc/rc.d/init.d/nginx restart

# service nginx restart

 

淘宝网提供的在线文档

http://tengine.taobao.org/documentation_cn.html

目前taobao只提供了在linux下的.tar.gz包的下载,暂不支持rpm包和windows下的安装。且文件也并十分简陋,相信其后继会有完备的版本更新和比较详细文档说明。 和tengine相关的其他的页面:

  • 淘宝网Nginx定制开发实战(Velocity China 2011)下载
     淘宝开源监控工具tsar主页
  • http://tsar.taobao.org/ 
  • 2013年4月9日后记:

               最新版本的tengine中加入在内存管理方面,增加了对jemalloc内存的支持 。具体编译安装方式,可以查看我的日志———— jemalloc内存管理 。




    本站的发展离不开您的资助,金额随意,欢迎来赏!

    You can donate through PayPal.
    My paypal id: itybku@139.com
    Paypal page: https://www.paypal.me/361way

    分类: http/html/web 标签: ,
    1. 本文目前尚无任何评论.