Tengine的安装和使用(1)
来源:互联网 发布:二维码生成器软件制作 编辑:程序博客网 时间:2024/06/03 20:17
一、Tengine概述
Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。它的目的是打造一个高效、安全的Web平台。完全兼容Nginx。
首先介绍下Nginx,nginx [engine x]是Igor Sysoev编写的一个HTTP和反向代理服务器,另外它也可以作为邮件代理服务器。 它已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括Yandex、Mail.Ru、VKontakte,以及Rambler。它是一款轻量级,高性能http和反向代理以及电子邮箱的服务器。
在这里要重点说下正向代理和反向代理(之后的都是基于自己理解的可能有些偏差):
正向代理:是一个请求或者报文(里面不仅仅包含请求内容,还要所要访问的服务器的地址),发送到服务器上,该服务器按照请求,将请求转发到目标服务器中。这里服务器的功能不单一,每台服务器中都存储数据。性能比较差。
反向代理(分布式服务器):是一个请求或者报文(里面只包含请求内容,没有所要访问的服务器的地址),只能发送到一个代理服务器(该服务器只执行行请求),该服务根据请求自动找到该请求所需资源的服务器(每个服务器存储的数据不同(每个数据库存储的资源不同)),并将请求结果返回给代理服务器,请求给用户。性能比较优越,同时可以处理高并发的访问量,提高效率。
而淘宝的 Nginx,集成了 lua 模块,若要是使用官方的 Nginx,默认安装没有 lua模块,自己安装配置较为麻烦,所以我们选择 Tengine。Tengine 主要负责展示图片和调度 Lua 脚本。
它的简单介绍请参考网站:
http://tengine.taobao.org/documentation_cn.html
二、安装Tengine
本博客用的linux系统版本是centos7,网络配置也就不详细介绍了请参照博客
http://blog.csdn.net/qq_38776653/article/details/73550714
1、源码下载
源码是由github托管,下载地址如下:
https://github.com/alibaba/tengine
也可以用linux的下载命令行:
sudo yum install wget #安装wgetwget https://github.com/alibaba/tengine/archive/tengine-2.2.0.tar.gz #下载源文件
本博客以最新的版本来展示使用和安装:
tengine-tengine-2.2.0.tar.gz
2、编译环境和安装必须组件的搭建
2.1编译环境的搭建
编译时一定要确定linux系统里面有c和c++的编译器(编译环境),这里就不详细介绍了,本机子里面已经编译过别的软件,下面的命令可以参考一下:
sudo yum -y install make gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap lsof build-essential cmake 1g-dev pkg-config libssl-dev lzo-devel fuse fuse-devel zlib1g-dev libprotobuf-dev protobuf-compiler snappy libbz2-dev libjansson-dev libfusesudo yum -y groupinstall "Development Tools"
查看其他博客也可以执行下面的命令来搭建编译环境:
sudo yum updatesudo yum install gcc gcc-c++ autoconf automake
2.2安装所必须的组件(这一步看tengine的功能来安装)
A、PCRE
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx rewrite依赖于PCRE库,所以在安装Tengine前一定要先安装PCRE,最新版本的PCRE可在官网(http://www.pcre.org/)获取。具体安装流程为:
cd /home/hadoop/app #指定下载地址 wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz#下载源文件 tar -zxvf pcre-8.38.tar.gz cd pcre-8.38 ./configure --prefix=/home/hadoop/soft/pcre make && make install cd /home/hadoop/soft/pcre chown -R hadoop:hadoop pcre #修改文件的所有者
在安装过程中会出现下面的错误:
libtool: install: /usr/bin/install -c .libs/libpcre.so.1.2.6 /home/hadoop/soft/pcre/lib/libpcre.so.1.2.6libtool: install: (cd /home/hadoop/soft/pcre/lib && { ln -s -f libpcre.so.1.2.6 libpcre.so.1 || { rm -f libpcre.so.1 && ln -s libpcre.so.1.2.6 libpcre.so.1; }; })libtool: install: (cd /home/hadoop/soft/pcre/lib && { ln -s -f libpcre.so.1.2.6 libpcre.so || { rm -f libpcre.so && ln -s libpcre.so.1.2.6 libpcre.so; }; })libtool: install: /usr/bin/install -c .libs/libpcre.lai /home/hadoop/soft/pcre/lib/libpcre.lalibtool: warning: relinking 'libpcreposix.la'libtool: install: (cd /home/hadoop/app/pcre-8.38; /bin/sh "/home/hadoop/app/pcre-8.38/libtool" --silent --tag CC --mode=relink gcc -fvisibility=hidden -g -O2 -version-info 0:3:0 -o libpcreposix.la -rpath /home/hadoop/soft/pcre/lib libpcreposix_la-pcreposix.lo libpcre.la )mv: cannot move 'libpcreposix.so.0.0.3' to 'libpcreposix.so.0.0.3U': Permission deniedlibtool: error: error: relink 'libpcreposix.la' with the above command before installing itmake[2]: *** [install-libLTLIBRARIES] 错误 1make[2]: 离开目录“/home/hadoop/app/pcre-8.38”make[1]: *** [install-am] 错误 2make[1]: 离开目录“/home/hadoop/app/pcre-8.38”make: *** [install] 错误 2
这是由于权限不够,必须切换到root用户下再进行上述操作。
B、OpenSSL
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。,安装OpenSSL(http://www.openssl.org/source/)主要是为了让tengine支持Https的访问请求。具体是否安装看需求。
复制代码 代码如下:
cd /home/hadoop/appwget http://www.openssl.org/source/openssl-1.0.2.tar.gztar -zxvf openssl-1.0.2.tar.gzcd openssl-1.0.2./config --prefix=/home/hadoop/soft/opensslsu #切换root用户make && make installcd /home/hadoop/softchown -R hadoop:hadoop openssl
C、Zlib
Zlib是提供资料压缩之用的函式库,当Tengine想启用GZIP压缩的时候就需要使用到Zlib(http://www.zlib.net/)
cd /home/hadoop/appwget http://zlib.net/zlib-1.2.11.tar.gztar -zxvf zlib-1.2.11.tar.gzcd zlib-1.2.11./configure --prefix=/home/hadoop/soft/zlibsu #切换root用户make && make installcd /home/hadoop/softchown -R hadoop:hadoop zlib
D、jemalloc
jemalloc(http://www.canonware.com/jemalloc/)是一个更好的内存管理工具,使用jemalloc可以更好的优化Tengine的内存管理。
cd /home/hadoop/appwget https://github.com/jemalloc/jemalloc/releases/download/5.0.1/jemalloc-5.0.1.tar.bz2tar -jxvf jemalloc-5.0.1.tar.bz2cd jemalloc-5.0.1./configure --prefix=/home/hadoop/soft/jemallocsu #切换root用户make && make installcd /home/hadoop/softchown -R hadoop:hadoop jemalloc
3、将源码传到linux,解压,编译
tar -zxvf tengine-tengine-2.2.0.tar.gz -C /home/hadoop/app/#把源文件解压到用户hadoop根目录下的app文件夹下cd /home/hadoop/app #切换到目标目录mv tengine-tengine-2.2.0 tengine #可以给文件夹取别名,改不改都可以cd tengine #切换到文件的目录./configure --prefix=/home/hadoop #初始化文件夹,--prefix指的是文件的安装位置,可以不指定,默认将安装在/usr/local/nginx目录make #编译文件sudo make install #安装tengine,
在编译安装过程中会编译不上,重新执行./configure –prefix=/home/hadoop/soft/tengine就ok了。
4、配置Tengine,设置tengine自动启动
编辑启动文件
vi /etc/rc.d/init.d/nginx
添加下面内容
#!/bin/sh## nginx - this script starts and stops the nginx daemon## chkconfig: - 85 15# description: Nginx is an HTTP(S) server, HTTP(S) reverse \# proxy and IMAP/POP3 proxy server# processname: nginx# config: /etc/nginx/nginx.conf# config: /etc/sysconfig/nginx# pidfile: /var/run/nginx.pid# Source function library.. /etc/rc.d/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Check that networking is up.[ "$NETWORKING" = "no" ] && exit 0nginx="/home/hadoop/tengine/sbin/nginx" prog=$(basename $nginx)NGINX_CONF_FILE="/home/hadoop/tengine/conf/nginx.conf"[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginxlockfile=/var/lock/subsys/nginxmake_dirs() { # make required directories user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -` if [ -z "`grep $user /etc/passwd`" ]; then useradd -M -s /bin/nologin $user fi options=`$nginx -V 2>&1 | grep 'configure arguments:'` for opt in $options; do if [ `echo $opt | grep '.*-temp-path'` ]; then value=`echo $opt | cut -d "=" -f 2` if [ ! -d "$value" ]; then # echo "creating" $value mkdir -p $value && chown -R $user $value fi fi done}start() { [ -x $nginx ] || exit 5 [ -f $NGINX_CONF_FILE ] || exit 6 make_dirs echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval}stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval}restart() { configtest || return $? stop sleep 1 start}reload() { configtest || return $? echo -n $"Reloading $prog: " killproc $nginx -HUP RETVAL=$? echo}force_reload() { restart}configtest() { $nginx -t -c $NGINX_CONF_FILE}rh_status() { status $prog}rh_status_q() { rh_status >/dev/null 2>&1}case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2esac
注意修改下面几处:前面是安装路径:
nginx=”/home/hadoop/tengine/sbin/nginx” 修改成nginx执行程序的路径。
NGINX_CONF_FILE=”/home/hadoop/tengine/conf/nginx.conf” 修改成配置文件的路径
chmod 775 /etc/rc.d/init.d/nginx #赋予文件执行权限
chkconfig –add /etc/rc.d/init.d/nginx
chkconfig nginx on #设置开机启动
systemctl restart nginx # 启动服务
“`
- Tengine的安装和使用(1)
- Tengine 的安装与使用
- Tengine的安装
- tengine的安装
- 在Linux下的Tengine安装和配置
- 1、Nginx和Tengine概述及安装、启动
- Tengine和nginx的对比
- tengine和apache的区别
- 安装Tengine
- tengine安装
- 安装 tengine
- tengine安装
- tengine安装
- tengine安装
- tengine安装
- tengine安装
- tengine安装
- (一)Centos7下 Tengine安装和配置
- createthread dll
- WOJ1313-K尾相等数
- hdu1525Euclid's Game(博弈)
- 查找字符串 中字串个数
- 社交网络
- Tengine的安装和使用(1)
- WOJ1314-3n+1数链问题
- js 读取歌词文件展示
- cocos2d-x main.cpp详解
- LeetCode--反转链表
- SQlCallback 回调是同步的
- Hibernate事务与并发处理
- 关于学校内网无法访问内部网站的问题
- java并发编程-线程同步-显示锁ReentrantLock