tengineインストール構成

tengine

Tengineは、Taobaoによって開始されたWebサーバープロジェクトです。Nginxに基づいて、それは多くの訪問者のウェブサイトのニーズのために多くの高度な機能と特徴を追加します。Tengineのパフォーマンスと安定性は、TaobaoやTmall.comなどの大規模なWebサイトで十分にテストされています。
その最終的な目標は、効率的で安定した、安全で使いやすいWebプラットフォームを作成することです。
2011年12月以降、Tengineはオープンソースプロジェクトになり、Tengineチームは積極的にプロジェクトの開発と保守を行っています。Tengineチームの中心的なメンバーは、淘宝網やSogouなどのインターネット企業から来ています。

公式ウェブサイトアドレス:

http://tengine.taobao.org

特徴

继承Nginx-1.17.3的所有特性,兼容Nginx的配置;
支持HTTP的CONNECT方法,可用于正向代理场景;
支持异步OpenSSL,可使用硬件如:QAT进行HTTPS的加速与卸载;
增强相关运维、监控能力,比如异步打印日志及回滚,本地DNS缓存,内存监控等;
Stream模块支持server_name指令;
更加强大的负载均衡能力,包括一致性hash模块、会话保持模块,还可以对后端的服务器进行主动健康检查,根据服务器状态自动上线下线,以及动态解析upstream中出现的域名;
输入过滤器机制支持。通过使用这种机制Web应用防火墙的编写更为方便;
支持设置proxy、memcached、fastcgi、scgi、uwsgi在后端失败时的重试次数
动态脚本语言Lua支持。扩展功能非常高效简单;
支持按指定关键字(域名,url等)收集Tengine运行状态;
组合多个CSS、JavaScript文件的访问请求变成一个请求;
自动去除空白字符和注释从而减小页面的体积
自动根据CPU数目设置进程个数和绑定CPU亲缘性;
监控系统的负载和资源占用从而对系统进行保护;
显示对运维人员更友好的出错信息,便于定位出错机器;
更强大的防攻击(访问速度限制)模块;
更方便的命令行参数,如列出编译的模块列表、支持的指令等;
可以根据访问文件类型设置过期时间;

機能
静态的web资源服务器html,图片,js,css,txt等静态资源 结合FastCGI/uWSGI/SCGI等协议反向代理动态资源请 求 http/https协议的反向代理 imap4/pop3协议的反向代理 tcp/udp协议的请求转发(反向代理)

Webリクエスト処理メカニズム:

 1、多进程方式:服务器每接收到一个客户端请求就有服务器的主进程生成一个子进程响应客 户端,直到用户关闭连接,这样的优势是处理速度快,子进程之间相互独立,但是如果访问过大会导致服务器资源 耗尽而无法提供请求。 
 2、多线程方式:与多进程方式类似,但是每收到一个客户端请求会有服务进程派生出一个 线程来个客户方进行交互,一个线程的开销远远小于一个进程,因此多线程方式在很大程度减轻了web服务器对系 统资源的要求。
 但是多线程也有自己的缺点,即当多个线程位于同一个进程内工作的时候,可以相互访问同样的内 存地址空间,所以他们相互影响,一旦主进程挂掉则所有子线程都不能工作了。
 IIS服务器使用了多线程的方式,需 要间隔一段时间就重启一次才能稳定。 

最新の開発バージョンのダウンロードアドレス:

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

最新の安定バージョンのダウンロードアドレス(一部のモジュールとパラメーターはサポートされていません。自分で判断する必要があります):

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

2つコンパイルしてインストール

基本環境をコンパイルしてインストールする準備をします

 yum install -y vim lrzsz tree screen psmisc lsof tcpdump wget  ntpdate  gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl  openssl-devel systemd-devel net-tools iotop bc  zip unzip zlib-devel bash-completion nfs-utils automake libxml2  libxml2-devel libxslt libxslt-devel perl perl-ExtUtils-Embed
gcc为GNU Compiler Collection的缩写,可以编译C和C++源代码等,它是GNU开发的C和C++以及其他很多种 语言的编译器(早的时候只能编译C,后来很快进化成一个编译多种语言的集合,如Fortran、Pascal、 Objective-C、Java、Ada、 Go等。)  
gcc 在编译C++源代码的阶段,只能编译 C++ 源文件,而不能自动和 C++ 程序使用的库链接(编译过程分 为编译、链接两个阶段,注意不要和可执行文件这个概念搞混,相对可执行文件来说有三个重要的概念:编译 (compile)、链接(link)、加载(load)。源程序文件被编译成目标文件,多个目标文件连同库被链接成一 个终的可执行文件,可执行文件被加载到内存中运行)。
因此,通常使用 g++ 命令来完成 C++ 程序的编译和 连接,该程序会自动调用 gcc 实现编译。 
 gcc-c++也能编译C源代码,只不过把会把它当成C++源代码,后缀为.c的,gcc把它当作是C程序,而g++当 作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是 有区别的。
  automake是一个从Makefile.am文件自动生成Makefile.in的工具。为了生成Makefile.in,automake 还需用到perl,由于automake创建的发布完全遵循GNU标准,所以在创建中不需要perl。libtool是一款方便 生成各种程序库的工具。 
   pcre pcre-devel:在Nginx编译需要 PCRE(Perl Compatible Regular Expression),因为Nginx 的Rewrite模块和HTTP 核心模块会使用到PCRE正则表达式语法。  zlip zlib-devel:nginx启用压缩功能的时候,需要此模块的支持。  
   openssl openssl-devel:开启SSL的时候需要此模块的支持。

#tengine-2.3.2の最新バージョンを解凍します

[root@cadb22baf6e8 ~]# ll
total 4864
-rw-------. 1 root root    3354 Dec 14  2016 anaconda-ks.cfg
-rw-r--r--. 1 root root 2137295 Sep  5 08:58 tengine-2.3.2.tar.gz
[root@cadb22baf6e8 ~]# tar zxf tengine-2.3.2.tar.gz 
[root@cadb22baf6e8 ~]# cd tengine-2.1.2
#编译安装
  [root@cadb22baf6e8 tengine-2.3.2]#groupadd www
      [root@cadb22baf6e8 tengine-2.3.2]#useradd -M -s /sbin/nologin -g www www 
      [root@cadb22baf6e8 tengine-2.3.2]# ./configure --prefix=/usr/local/nginx  \
       --user=www   --group=www  --with-http_ssl_module \
       --with-http_v2_module  --with-http_realip_module \ 
       --with-http_stub_status_module \
       --with-http_gzip_static_module --with-pcre \
       --with-stream --with-stream_ssl_module  --with-stream_realip_module
 # make && make install
 # chown www.www -R /usr/local/nginx/

#バージョンとその他のパラメーターを確認する
ここに画像の説明を挿入

Nginx自己起動スクリプトを作成します:
cat /usr/lib/systemd/system/nginx.service

[Unit] 
Description=The nginx HTTP and reverse proxy server 
After=network.target remote-fs.target nss-lookup.target
[Service]
 Type=forking
 PIDFile=/usr/local/nginx/logs/nginx.pid 
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong 
# SELinux context. This might happen when running `nginx -t` from the cmdline.
 # https://bugzilla.redhat.com/show_bug.cgi?id=1268621 
 ExecStartPre=/usr/bin/rm -f /apps/nginx/logs/nginx.pid
 ExecStartPre=/apps/nginx/sbin/nginx -t 
 ExecStart=/apps/nginx/sbin/nginx 
 ExecReload=/bin/kill -s HUP $MAINPID 
 #KillSignal=SIGQUIT 
 #TimeoutStopSec=5 
 KillMode=process 
 PrivateTmp=true
[Install] WantedBy=multi-user.target

サービスのセルフスタートを設定し、
systemctl enable nginx
を開始します。systemctlstart nginx
その後、通常どおりアクセスできます。

公開された77元の記事 ウォンの賞賛0 ビュー3232

おすすめ

転載: blog.csdn.net/liaowunonghen/article/details/104611875