`

linux下tengine安装

阅读更多

 

linux下nginx安装、配置实战 http://aperise.iteye.com/blog/2223373
linux下tengine安装 http://aperise.iteye.com/blog/2339601

 

linux下tengine安装

1.什么是tengine?

    说到tengine,首先还是得说下nginx了,大家对于nginx并不陌生,对于基本的需求都能满足,如果是涉及高级性能,那么就必须使用商用版nginx plus了,一谈到商用,大家就特别敏感,有没有开源免费的呢,有的,所以tengine诞生了。

    Tengine(http://tengine.taobao.org/index_cn.html)是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。主要特性有

  • 继承Nginx-1.6.2的所有特性,兼容Nginx的配置;
  • 动态模块加载(DSO)支持。加入一个模块不再需要重新编译整个Tengine;
  • 支持SO_REUSEPORT选项,建连性能提升为官方nginx的三倍;
  • 支持SPDY v3协议,自动检测同一端口的SPDY请求和HTTP请求;
  • 流式上传到HTTP后端服务器或FastCGI服务器,大量减少机器的I/O压力;
  • 更加强大的负载均衡能力,包括一致性hash模块、会话保持模块,还可以对后端的服务器进行主动健康检查,根据服务器状态自动上线下线,以及动态解析upstream中出现的域名;
  • 输入过滤器机制支持。通过使用这种机制Web应用防火墙的编写更为方便;
  • 支持设置proxy、memcached、fastcgi、scgi、uwsgi在后端失败时的重试次数
  • 动态脚本语言Lua支持。扩展功能非常高效简单;
  • 支持管道(pipe)和syslog(本地和远端)形式的日志以及日志抽样;
  • 支持按指定关键字(域名,url等)收集Tengine运行状态;
  • 组合多个CSS、JavaScript文件的访问请求变成一个请求;
  • 自动去除空白字符和注释从而减小页面的体积
  • 自动根据CPU数目设置进程个数和绑定CPU亲缘性;
  • 监控系统的负载和资源占用从而对系统进行保护;
  • 显示对运维人员更友好的出错信息,便于定位出错机器;
  • 更强大的防攻击(访问速度限制)模块;
  • 更方便的命令行参数,如列出编译的模块列表、支持的指令等;
  • 可以根据访问文件类型设置过期时间

2.tengine安装前准备

    2.1 编译环境准备

yum -y install net-tools perl gcc gcc-c++ bzip2 autoconf automake

 

    2.2 Tengine用户和组添加

#创建tengine用户和组
groupadd tengine
useradd -g tengine tengine
#设置用户tengine密码
passwd tengine

 

    2.3 openssl安装

        OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。安装OpenSSL(http://www.openssl.org/source/)主要是为了让tengine支持Https的访问请求。

#1.安装openssl-1.0.2.tar.gz
#在https://www.openssl.org/source/下载openssl-1.0.2.tar.gz
#wget http://www.openssl.org/source/openssl-1.0.2.tar.gz
cd /home/tengine/software
#解压安装文件
tar -zxvf openssl-1.0.2.tar.gz
cd openssl-1.0.2
#prefix配置安装路径
./config --prefix=/home/tengine/openssl-1.0.2
make
make install

 

    2.4 zlib安装

        Zlib是提供资料压缩之用的函式库,当Tengine想启用GZIP压缩的时候就需要使用到Zlib(http://www.zlib.net/)。

#1.安装zlib-1.2.8.tar.gz
#在https://sourceforge.net/projects/libpng/files/zlib/1.2.8/zlib-1.2.8.tar.gz/download下载zlib-1.2.8.tar.gz
#wget https://sourceforge.net/projects/libpng/files/zlib/1.2.8/zlib-1.2.8.tar.gz
cd /home/tengine/software
#2解压安装文件
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
#3prefix配置安装路径
./configure --prefix=/home/tengine/zlib-1.2.8
make
make install

 

    2.5 pcre安装

        PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx rewrite依赖于PCRE库,所以在安装Tengine前一定要先安装PCRE,最新版本的PCRE可在官网(http://www.pcre.org/)获取。

 
#1.安装pcre-8.39.tar.gz
#在ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/下载pcre-8.39.tar.gz
#wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz

cd /home/tengine/software
#2解压安装文件
tar -zxvf pcre-8.39.tar.gz
cd pcre-8.39

#3prefix配置安装路径
./configure --prefix=/home/tengine/pcre-8.39
make
make install

 

    2.6 jemalloc安装

        jemalloc(http://www.canonware.com/jemalloc/)是一个更好的内存管理工具,使用jemalloc可以更好的优化Tengine的内存管理。

#1.安装jemalloc-4.2.1.tar.bz2
#在http://www.canonware.com/download/jemalloc/下载jemalloc-4.2.1.tar.bz2
#wget http://www.canonware.com/download/jemalloc/jemalloc-4.2.1.tar.bz2
cd /home/tengine/software
#2解压安装文件
tar -jxvf jemalloc-4.2.1.tar.bz2
cd jemalloc-4.2.1
#3jemalloc配置安装路径
./configure --prefix=/home/tengine/jemalloc-4.2.1
make
make install

 

3.tengine安装

#1.安装tengine-2.1.2.tar.gz
cd /home/tengine/software
#2.解压安装文件
tar -zxvf tengine-2.1.2.tar.gz
cd tengine-2.1.2
#3.with-*这里都只配置上面pcre、zlib、openssl和jemalloc的解压所在目录位置,也即它们的源代码所在位置的目录,prefix配置安装路径
./configure --prefix=/home/tengine/tengine-2.1.2 \
--user=tengine \
--group=tengine \
--with-pcre=../pcre-8.39 \
--with-zlib=../zlib-1.2.8 \
--with-openssl=../openssl-1.0.2 \
--with-jemalloc=../jemalloc-4.2.1 \
--with-http_gzip_static_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_concat_module

make
make install

     注意:with-*指定依赖包源代码位置也即解压相关依赖库所在位置,切记不是安装位置,prefix配置安装路径

               以上操作都是使用root用户进行编译

    上面的安装在操作系统centos7.2上没遇到任何问题,如果在操作系统CentOS release 6.4遇到以下报错信息:

make -f objs/Makefile install
make[1]: Entering directory `/home/tengine/software/tengine-2.1.2'
cc -rdynamic -o objs/nginx \
        objs/src/core/nginx.o \
        objs/src/core/ngx_log.o \
        objs/src/core/ngx_palloc.o \
        objs/src/core/ngx_array.o \
        objs/src/core/ngx_list.o \
        objs/src/core/ngx_hash.o \
        objs/src/core/ngx_buf.o \
        objs/src/core/ngx_queue.o \
        objs/src/core/ngx_output_chain.o \
        objs/src/core/ngx_string.o \
        objs/src/core/ngx_parse.o \
        objs/src/core/ngx_inet.o \
        objs/src/core/ngx_file.o \
        objs/src/core/ngx_crc32.o \
        objs/src/core/ngx_murmurhash.o \
        objs/src/core/ngx_md5.o \
        objs/src/core/ngx_rbtree.o \
        objs/src/core/ngx_trie.o \
        objs/src/core/ngx_segment_tree.o \
        objs/src/core/ngx_radix_tree.o \
        objs/src/core/ngx_slab.o \
        objs/src/core/ngx_times.o \
        objs/src/core/ngx_shmtx.o \
        objs/src/core/ngx_connection.o \
        objs/src/core/ngx_cycle.o \
        objs/src/core/ngx_spinlock.o \
        objs/src/core/ngx_cpuinfo.o \
        objs/src/core/ngx_conf_file.o \
        objs/src/core/ngx_resolver.o \
        objs/src/core/ngx_open_file_cache.o \
        objs/src/core/ngx_crypt.o \
        objs/src/core/ngx_proxy_protocol.o \
        objs/src/event/ngx_event.o \
        objs/src/event/ngx_event_timer.o \
        objs/src/event/ngx_event_posted.o \
        objs/src/event/ngx_event_busy_lock.o \
        objs/src/event/ngx_event_accept.o \
        objs/src/event/ngx_event_connect.o \
        objs/src/event/ngx_event_pipe.o \
        objs/src/os/unix/ngx_time.o \
        objs/src/os/unix/ngx_errno.o \
        objs/src/os/unix/ngx_alloc.o \
        objs/src/os/unix/ngx_files.o \
        objs/src/os/unix/ngx_socket.o \
        objs/src/os/unix/ngx_recv.o \
        objs/src/os/unix/ngx_readv_chain.o \
        objs/src/os/unix/ngx_udp_recv.o \
        objs/src/os/unix/ngx_send.o \
        objs/src/os/unix/ngx_writev_chain.o \
        objs/src/os/unix/ngx_channel.o \
        objs/src/os/unix/ngx_shmem.o \
        objs/src/os/unix/ngx_process.o \
        objs/src/os/unix/ngx_daemon.o \
        objs/src/os/unix/ngx_setproctitle.o \
        objs/src/os/unix/ngx_posix_init.o \
        objs/src/os/unix/ngx_user.o \
        objs/src/os/unix/ngx_pipe.o \
        objs/src/os/unix/ngx_sysinfo.o \
        objs/src/os/unix/ngx_process_cycle.o \
        objs/src/os/unix/ngx_linux_init.o \
        objs/src/event/modules/ngx_epoll_module.o \
        objs/src/os/unix/ngx_linux_sendfile_chain.o \
        objs/src/os/unix/ngx_syslog.o \
        objs/src/core/ngx_dso_module.o \
        objs/src/proc/ngx_proc.o \
        objs/src/event/ngx_event_openssl.o \
        objs/src/event/ngx_event_openssl_stapling.o \
        objs/src/core/ngx_regex.o \
        objs/src/http/ngx_http.o \
        objs/src/http/ngx_http_core_module.o \
        objs/src/http/ngx_http_special_response.o \
        objs/src/http/ngx_http_request.o \
        objs/src/http/ngx_http_parse.o \
        objs/src/http/ngx_http_header_filter_module.o \
        objs/src/http/ngx_http_write_filter_module.o \
        objs/src/http/ngx_http_copy_filter_module.o \
        objs/src/http/modules/ngx_http_log_module.o \
        objs/src/http/ngx_http_request_body.o \
        objs/src/http/ngx_http_variables.o \
        objs/src/http/ngx_http_script.o \
        objs/src/http/ngx_http_upstream.o \
        objs/src/http/ngx_http_upstream_round_robin.o \
        objs/src/http/ngx_http_parse_time.o \
        objs/src/http/modules/ngx_http_static_module.o \
        objs/src/http/modules/ngx_http_index_module.o \
        objs/src/http/modules/ngx_http_chunked_filter_module.o \
        objs/src/http/modules/ngx_http_range_filter_module.o \
        objs/src/http/modules/ngx_http_headers_filter_module.o \
        objs/src/http/modules/ngx_http_not_modified_filter_module.o \
        objs/src/http/ngx_http_busy_lock.o \
        objs/src/http/ngx_http_file_cache.o \
        objs/src/http/modules/ngx_http_gzip_filter_module.o \
        objs/src/http/ngx_http_postpone_filter_module.o \
        objs/src/http/modules/ngx_http_ssi_filter_module.o \
        objs/src/http/modules/ngx_http_charset_filter_module.o \
        objs/src/http/modules/ngx_http_userid_filter_module.o \
        objs/src/http/modules/ngx_http_footer_filter_module.o \
        objs/src/http/modules/ngx_http_trim_filter_module.o \
        objs/src/http/modules/ngx_http_gzip_static_module.o \
        objs/src/http/modules/ngx_http_autoindex_module.o \
        objs/src/http/modules/ngx_http_concat_module.o \
        objs/src/http/modules/ngx_http_auth_basic_module.o \
        objs/src/http/modules/ngx_http_access_module.o \
        objs/src/http/modules/ngx_http_limit_conn_module.o \
        objs/src/http/modules/ngx_http_limit_req_module.o \
        objs/src/http/modules/ngx_http_realip_module.o \
        objs/src/http/modules/ngx_http_geo_module.o \
        objs/src/http/modules/ngx_http_map_module.o \
        objs/src/http/modules/ngx_http_split_clients_module.o \
        objs/src/http/modules/ngx_http_referer_module.o \
        objs/src/http/modules/ngx_http_rewrite_module.o \
        objs/src/http/modules/ngx_http_ssl_module.o \
        objs/src/http/modules/ngx_http_proxy_module.o \
        objs/src/http/modules/ngx_http_fastcgi_module.o \
        objs/src/http/modules/ngx_http_uwsgi_module.o \
        objs/src/http/modules/ngx_http_scgi_module.o \
        objs/src/http/modules/ngx_http_memcached_module.o \
        objs/src/http/modules/ngx_http_empty_gif_module.o \
        objs/src/http/modules/ngx_http_browser_module.o \
        objs/src/http/modules/ngx_http_user_agent_module.o \
        objs/src/http/modules/ngx_http_upstream_ip_hash_module.o \
        objs/src/http/modules/ngx_http_upstream_consistent_hash_module.o \
        objs/src/http/ngx_http_upstream_check_module.o \
        objs/src/http/modules/ngx_http_upstream_least_conn_module.o \
        objs/src/http/modules/ngx_http_upstream_session_sticky_module.o \
        objs/src/http/modules/ngx_http_reqstat_module.o \
        objs/src/http/modules/ngx_http_upstream_keepalive_module.o \
        objs/src/http/modules/ngx_http_upstream_dynamic_module.o \
        objs/src/http/modules/ngx_http_stub_status_module.o \
        objs/ngx_modules.o \
        -lpthread -ldl -lcrypt ../pcre-8.39/.libs/libpcre.a ../openssl-1.0.2/.openssl/lib/libssl.a ../openssl-1.0.2/.openssl/lib/libcrypto.a -ldl ../zlib-1.2.8/libz.a ../jemalloc-4.2.1/lib/libjemalloc.a -lpthread
../jemalloc-4.2.1/lib/libjemalloc.a(nstime.o): In function `je_nstime_update':
/home/tengine/software/jemalloc-4.2.1/src/nstime.c:125: undefined reference to `clock_gettime'
/home/tengine/software/jemalloc-4.2.1/src/nstime.c:127: undefined reference to `clock_gettime'
collect2: ld returned 1 exit status
make[1]: *** [objs/nginx] Error 1
make[1]: Leaving directory `/home/tengine/software/tengine-2.1.2'
make: *** [install] Error 2

    上面出错根本原因是编译nginx找不到实时库librt,只需将文件/home/tengine/software/tengine-2.1.2/objs/Makefile中的首行:

CC =    cc 

    修改为:

CC =    cc -lrt

    上面的编译出错问题即可解决,-lrt的意思是让编译的时候加入实时库librt.

 

4.修改tengine目录所属用户组和权限

chgrp -R tengine /home/tengine/tengine-2.1.2/
chown -R tengine /home/tengine/tengine-2.1.2/
chmod -R 755 /home/tengine/tengine-2.1.2/

 

5.tengine常用命令

    tegine命令其实和之前nginx并无差别,这里简单列举几个,其他命令详见nginx官网

#1.启动tengine
cd /home/tengine/tengine-2.1.2/sbin
./nginx
#2.查看端口
netstat -ntlp
#3.关闭tengine
cd /home/tengine/tengine-2.1.2/sbin
./nginx -s stop

 

6.Tengine加入PATH

#编辑/home/tengine/.bashrc,加入Tengine启动脚本到PATH
vi /home/tengine/.bashrc
export TENGINE_HOME=/home/tengine/tengine-2.1.2
export PATH=$PATH:$TENGINE_HOME/sbin

 

7.Tengine开机自启动

#创建软连接
ln -s /home/tengine/tengine-2.1.2/sbin/nginx /etc/init.d/nginx
#赋予执行权限
chmod a+x /etc/init.d/nginx
vi /etc/rc.local
#增加如下内容
/etc/init.d/nginx

 

8.配置例子

    详见上一篇博客linux下nginx安装、配置实战

分享到:
评论

相关推荐

    Linux系统中搭建Tengine反向代理服务器

    Linux系统中搭建Tengine服务器需要的资源 1.tengine-2.2.0.tar.gz 2.pcre-8.39.tar.gz 3.siege-3.1.4.tar.gz siege是测试工具 以上资源都是源码,都需要make && make install

    ltnmp, Linux,Tengine,MariaDB,PHP生产环境一键安装包.zip

    在IT行业中,LAMP(Linux、Apache、MySQL、PHP)是常见的Web服务器架构,但在一些特定的场景下,人们可能会选择LTNMP架构,它由Linux操作系统、Tengine Web服务器、MariaDB数据库以及PHP编程语言组成。这个"ltnmp, ...

    Linux,Tengine,MariaDB,PHP生产环境一键安装包

    ltnmp一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat、Debian/Ubuntu VPS(VDS)或独立主机安装ltnmp(Linux、Tengine/Nginx、PHP、MariaDB/Mysql、phpMyAdmin)生产环境的Shell程序。ltnmp一键安装包是基于...

    Linux,Tengine,MariaDB,PHP生产环境一键安装包_ltnmp.zip

    Linux,Tengine,MariaDB,PHP生产环境一键安装包_ltnmp

    tengine安装所需nginx文档

    在安装tengine过程中,预编译完成后所需要的建立的nginx文档,可直接复制到linux中,修改路径后可直接使用。

    tengine-2.3.2_win64.rar

    描述 "tengine-2.3.2 在Cygwin下编译, 花了不少的时间才搞定的问题,--------------亲测可用。" 暗示了这个版本是在 Cygwin 环境下进行编译的。Cygwin 是一个提供 Linux API 的软件集合,允许在 Windows 上运行原生...

    tengine-2.3.2 for windows full modules

    通过Cygwin,开发者能够在Windows上构建和运行原本需要Linux环境的软件,如Tengine。在这个过程中,开发者已经修复了源代码中许多与Windows编译不兼容的问题,确保了Tengine在Windows上的稳定运行。 在提供的文件...

    Tengine服务器快速搭建方法 云服务器一键安装LTMP(TengineRPM一键安装)

    3. 脚本会自动安装Tengine、PHP、MySQL等组件,安装完成后,可以使用Linux的标准服务管理命令来启动、停止或监控这些服务。 - Tengine: `service tengine {start|stop|restart|reload|status|help}` - ...

    tengine图片裁剪相关资源

    linux环境下tengine整合lua和gm。实现自动图片裁剪,的安装包。可实现将图片剪切为指定的比例,加快前端的加载速度,对应使用博客https://blog.csdn.net/qq_36911145/article/details/82898096

    tengine-2.3.2.tar.gz

    Tengine可在多种操作系统上运行,包括Linux、FreeBSD等,适应性强。 8. **自定义日志格式**: 提供了灵活的日志格式配置,可以满足各种复杂的日志分析需求。 9. **热更新功能**: 支持在线热更新配置,无需中断...

    tengine-2.1.0.tar.gz

    Tengine是由阿里巴巴集团开发并开源的一款Web服务器,它的全称为"Tengine-2.1.0",在本例中以".tar.gz"格式提供,这是一个常见的Linux和Unix系统中的归档压缩文件。Tengine基于著名的Web服务器Nginx,但在其基础上...

    tengine-2.2.2.tar.gz

    安装完成后,你可以通过配置Tengine的配置文件(通常位于`/usr/local/tengine/conf/nginx.conf`)来设置负载均衡策略。例如,在http或stream上下文中添加upstream块,指定后端服务器,并设置负载均衡算法: ```...

    LTMP一键安装程序(淘宝Web服务器Tengine+mysql+php)Jimmyli

    LTMP(Linux Tengine MySQL PHP)是一键安装程序,它整合了淘宝的Web服务器Tengine、MySQL数据库和PHP解释器,旨在提供一个高效、稳定、安全且易用的Web平台。这一组合尤其适合那些希望快速搭建类似淘宝、天猫商城等...

    Tengine(Nginx)配置参考

    #运行用户 #user nobody; #启动进程,通常设置成和cpu的数量相等 worker_processes auto; #更改worker进程的最大打开文件数限制。如果没设置的话,这个值为操作系统的限制。设置后你的操作系统和Nginx可以处理比...

    cpp-Tengine一个精简高性能用于嵌入式设备的模块化推理引擎

    3. **跨平台兼容**:Tengine支持多种操作系统,如Linux、Android等,同时对不同的硬件平台提供良好的兼容性,如树莓派、恩智浦(NXP)、华为海思(HiSilicon)等芯片方案。 4. **模型兼容性**:Tengine支持多种主流的...

    install-tengine-2.2.2.zip_shell

    **安装Tengine 2.2.2:Shell脚本指南** Tengine是由淘宝网开发的一款高性能、可定制的Web服务器,它是Nginx的一个分支,加入了更多特性,优化了性能,特别适合大型网站的需求。在本文中,我们将详细介绍如何通过...

    淘宝基于Nginx高效稳定针对大访问请求的Tengine服务器快速搭建方法

    Tengine继承了Nginx-1.2.3的所有功能,并对其进行了一系列优化,使其在处理高并发场景下表现更优。在诸如天猫商城这样的大型电商网站中,Tengine已经证明了其卓越的能力。 【Tengine与Nginx的区别】 Tengine的主要...

Global site tag (gtag.js) - Google Analytics