操作指南

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

  1. Tengine,简单的讲就是对nginx进行了二次开发并提供了更丰富的功能
  2. 官网地址:http://tengine.taobao.org/;
  3. 目前最新的稳定版本是2.2.0
  4. 下载地址:http://tengine.taobao.org/download/tengine-2.2.0.tar.gz

1、下载

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

2、解压

  1. tar -zxvf tengine-2.2.0.tar.gz
  2. cd tengine-2.2.0/

3、检查依赖库

在安装之前首先检查一下是否已安装nginx的一些模块依赖的lib库,诸如g++、gcc、pcre-devel、openssl-devel和zlib-devel。所以下面这些命令最好挨个跑一遍,已安装的会提示不用安装,未安装或需要更新的则会执行安装及更新:

  1. yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel --setopt=protected_multilib=false

image.png

4、安装完依赖后下面就可以放心开始安装nginx了,输入安装命令并指定安装路径

  1. /configure --prefix=/usr/local/nginx

看到如下提示信息恭喜你,成功一大半啦!

image.png

5、最后通过make以及make install进行编译安装:

  1. make && make install

6、安装完成后启动一下,输入启动命令

  1. /usr/local/nginx/sbin/nginx
  2. [root@tlzhghglu local]# nginx
  3. bash: nginx: command not found...
  4. #解决方案:
  5. nginx的启动路径加入到环境变量中:
  6. 1. 打开环境变量所在的文件:vim /etc/profile
  7. 2. 在命令模式下按GG至末尾,加上一行
  8. PATH=$PATH:/usr/local/nginx/sbin
  9. 3. 重新加载环境
  10. source profile

7、设置为系统服务

  1. vim /lib/systemd/system/nginx.service 创建文件
  2. [Unit]
  3. Description=The nginx HTTP and reverse proxy server
  4. After=syslog.target network.target remote-fs.target nss-lookup.target
  5. [Service]
  6. Type=forking
  7. PIDFile=/usr/local/nginx/logs/nginx.pid
  8. ExecStartPre=/usr/local/nginx/sbin/nginx -t
  9. ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
  10. ExecReload=/bin/kill -s HUP $MAINPID
  11. ExecStop=/bin/kill -s QUIT $MAINPID
  12. PrivateTmp=true
  13. [Install]
  14. WantedBy=multi-user.target
  15. chmod 745 nginx.service chmod 745 /lib/systemd/system/nginx.service
  16. systemctl enable nginx.service

完后就可以使用以下命令管理tengine服务器了:

  1. service nginx start
  2. service nginx stop
  3. service nginx restart
  4. systemctl enable nginx.service【开机自启动】

8、让Tengine可以处理PHP:nginx.conf

  1. #隐藏服务器版本号
  2. server_tokens off;
  3. server {
  4. listen 80;
  5. server_name localhost;
  6. root /var/www;
  7. location / {
  8. index index.html index.htm index.php;
  9. if (!-e $request_filename) {
  10. rewrite ^(.*)$ /index.php?s=$1 last;
  11. break;
  12. }
  13. }
  14. location ~ \.php(.*)$ {
  15. fastcgi_pass 127.0.0.1:9000;
  16. fastcgi_index index.php;
  17. fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
  18. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  19. fastcgi_param PATH_INFO $fastcgi_path_info;
  20. fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
  21. include fastcgi_params;
  22. }
  23. }

9、开启80端口(其他端口类似,只针对firewall防火墙)

  1. service firewalld start(启动防火墙)
  2. firewall-cmd --zone=public --add-port=80/tcp --permanent(开放端口)

命令含义:

–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
重启防火墙

  1. firewall-cmd --reloadservice firewalld restart(重新启动防火墙)】

CentOS 7.0默认使用的是firewall作为防火墙

查看防火墙状态

  1. firewall-cmd --state1

停止firewall

  1. systemctl stop firewalld.service1

禁止firewall开机启动

  1. systemctl disable firewalld.service

关闭selinux

进入到/etc/selinux/config文件

  1. vi /etc/selinux/config1

将SELINUX=enforcing改为SELINUX=disabled
配制免密登录的命令

  1. ssh-keygen -t rsa
  2. ssh-copy-id root@master1
  3. 2

scp -P 22 /Users/che/Downloads/jdk-8u161-linux-x64.rpm root@192.168.1.100:/software/

  1. 安装: yum install -y jdk-8u161-linux-x64.rpm
  2. 设置环境变量
  3. cd /usr/java/
  4. /usr/java/jdk1.8.0_161
  5. vi /etc/profile
  6. export JAVA_HOME=/usr/java/jdk1.8.0_161
  7. export PATH=$JAVA_HOME/bin:$PATH

设置ntp时间同步服务
1、安装ntp
yum install -y ntp
2、设置NTP服务开机启动
chkconfig ntpd on
service nptd start

参考文件配置

  1. #user nobody;
  2. worker_processes 1;
  3. #error_log logs/error.log;
  4. #error_log logs/error.log notice;
  5. #error_log logs/error.log info;
  6. #pid logs/nginx.pid;
  7. events {
  8. worker_connections 1024;
  9. }
  10. # load modules compiled as Dynamic Shared Object (DSO)
  11. #
  12. #dso {
  13. # load ngx_http_fastcgi_module.so;
  14. # load ngx_http_rewrite_module.so;
  15. #}
  16. http {
  17. include mime.types;
  18. default_type application/octet-stream;
  19. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  20. '$status $body_bytes_sent "$http_referer" '
  21. '"$http_user_agent" "$http_x_forwarded_for"';
  22. access_log logs/access.log main;
  23. sendfile on;
  24. #tcp_nopush on;
  25. #keepalive_timeout 0;
  26. keepalive_timeout 65;
  27. gzip on;
  28. reset_timedout_connection on; # 关闭不响应的客户端连接,释放客户端所占的内存空间
  29. client_body_buffer_size 8k; # 指定用于读取客户端请求主体的缓冲区大小
  30. client_header_buffer_size 1k; # 指定用于读取客户端请求首部的缓冲区大小
  31. large_client_header_buffers 4 8k; # 指定用于读取客户端请求中较大首部的缓冲区的最大数量和大小
  32. client_max_body_size 20m; # 指定用于客户端请求主体的最大大小
  33. client_header_timeout 30s; # 指定用于读取客户端请求报文首部的超时时长,单位秒
  34. client_body_timeout 30s; # 指定用于读取客户端请求报文主体的超时时长,单位秒
  35. send_timeout 30s; # 指定用于向客户端发送响应报文的超时时长,单位秒
  36. include /usr/local/nginx/conf/conf.d/*.conf;
  37. }

操作指南

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

  1. Tengine,简单的讲就是对nginx进行了二次开发并提供了更丰富的功能
  2. 官网地址:http://tengine.taobao.org/;
  3. 目前最新的稳定版本是2.2.0
  4. 下载地址:http://tengine.taobao.org/download/tengine-2.2.0.tar.gz

1、下载

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

2、解压

  1. tar -zxvf tengine-2.2.0.tar.gz
  2. cd tengine-2.2.0/

3、检查依赖库

在安装之前首先检查一下是否已安装nginx的一些模块依赖的lib库,诸如g++、gcc、pcre-devel、openssl-devel和zlib-devel。所以下面这些命令最好挨个跑一遍,已安装的会提示不用安装,未安装或需要更新的则会执行安装及更新:

  1. yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel --setopt=protected_multilib=false

image.png

4、安装完依赖后下面就可以放心开始安装nginx了,输入安装命令并指定安装路径

  1. /configure --prefix=/usr/local/nginx

看到如下提示信息恭喜你,成功一大半啦!

image.png

5、最后通过make以及make install进行编译安装:

  1. make && make install

6、安装完成后启动一下,输入启动命令

  1. /usr/local/nginx/sbin/nginx
  2. [root@tlzhghglu local]# nginx
  3. bash: nginx: command not found...
  4. #解决方案:
  5. nginx的启动路径加入到环境变量中:
  6. 1. 打开环境变量所在的文件:vim /etc/profile
  7. 2. 在命令模式下按GG至末尾,加上一行
  8. PATH=$PATH:/usr/local/nginx/sbin
  9. 3. 重新加载环境
  10. source profile

7、设置为系统服务

  1. vim /lib/systemd/system/nginx.service 创建文件
  2. [Unit]
  3. Description=The nginx HTTP and reverse proxy server
  4. After=syslog.target network.target remote-fs.target nss-lookup.target
  5. [Service]
  6. Type=forking
  7. PIDFile=/usr/local/nginx/logs/nginx.pid
  8. ExecStartPre=/usr/local/nginx/sbin/nginx -t
  9. ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
  10. ExecReload=/bin/kill -s HUP $MAINPID
  11. ExecStop=/bin/kill -s QUIT $MAINPID
  12. PrivateTmp=true
  13. [Install]
  14. WantedBy=multi-user.target
  15. chmod 745 nginx.service chmod 745 /lib/systemd/system/nginx.service
  16. systemctl enable nginx.service

完后就可以使用以下命令管理tengine服务器了:

  1. service nginx start
  2. service nginx stop
  3. service nginx restart
  4. systemctl enable nginx.service【开机自启动】

8、让Tengine可以处理PHP:nginx.conf

  1. #隐藏服务器版本号
  2. server_tokens off;
  3. server {
  4. listen 80;
  5. server_name localhost;
  6. root /var/www;
  7. location / {
  8. index index.html index.htm index.php;
  9. if (!-e $request_filename) {
  10. rewrite ^(.*)$ /index.php?s=$1 last;
  11. break;
  12. }
  13. }
  14. location ~ \.php(.*)$ {
  15. fastcgi_pass 127.0.0.1:9000;
  16. fastcgi_index index.php;
  17. fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
  18. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  19. fastcgi_param PATH_INFO $fastcgi_path_info;
  20. fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
  21. include fastcgi_params;
  22. }
  23. }

9、开启80端口(其他端口类似,只针对firewall防火墙)

  1. service firewalld start(启动防火墙)
  2. firewall-cmd --zone=public --add-port=80/tcp --permanent(开放端口)

命令含义:

–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
重启防火墙

  1. firewall-cmd --reloadservice firewalld restart(重新启动防火墙)】

CentOS 7.0默认使用的是firewall作为防火墙

查看防火墙状态

  1. firewall-cmd --state1

停止firewall

  1. systemctl stop firewalld.service1

禁止firewall开机启动

  1. systemctl disable firewalld.service

关闭selinux

进入到/etc/selinux/config文件

  1. vi /etc/selinux/config1

将SELINUX=enforcing改为SELINUX=disabled
配制免密登录的命令

  1. ssh-keygen -t rsa
  2. ssh-copy-id root@master1
  3. 2

scp -P 22 /Users/che/Downloads/jdk-8u161-linux-x64.rpm root@192.168.1.100:/software/

  1. 安装: yum install -y jdk-8u161-linux-x64.rpm
  2. 设置环境变量
  3. cd /usr/java/
  4. /usr/java/jdk1.8.0_161
  5. vi /etc/profile
  6. export JAVA_HOME=/usr/java/jdk1.8.0_161
  7. export PATH=$JAVA_HOME/bin:$PATH

设置ntp时间同步服务
1、安装ntp
yum install -y ntp
2、设置NTP服务开机启动
chkconfig ntpd on
service nptd start

参考文件配置

  1. #user nobody;
  2. worker_processes 1;
  3. #error_log logs/error.log;
  4. #error_log logs/error.log notice;
  5. #error_log logs/error.log info;
  6. #pid logs/nginx.pid;
  7. events {
  8. worker_connections 1024;
  9. }
  10. # load modules compiled as Dynamic Shared Object (DSO)
  11. #
  12. #dso {
  13. # load ngx_http_fastcgi_module.so;
  14. # load ngx_http_rewrite_module.so;
  15. #}
  16. http {
  17. include mime.types;
  18. default_type application/octet-stream;
  19. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  20. '$status $body_bytes_sent "$http_referer" '
  21. '"$http_user_agent" "$http_x_forwarded_for"';
  22. access_log logs/access.log main;
  23. sendfile on;
  24. #tcp_nopush on;
  25. #keepalive_timeout 0;
  26. keepalive_timeout 65;
  27. gzip on;
  28. reset_timedout_connection on; # 关闭不响应的客户端连接,释放客户端所占的内存空间
  29. client_body_buffer_size 8k; # 指定用于读取客户端请求主体的缓冲区大小
  30. client_header_buffer_size 1k; # 指定用于读取客户端请求首部的缓冲区大小
  31. large_client_header_buffers 4 8k; # 指定用于读取客户端请求中较大首部的缓冲区的最大数量和大小
  32. client_max_body_size 20m; # 指定用于客户端请求主体的最大大小
  33. client_header_timeout 30s; # 指定用于读取客户端请求报文首部的超时时长,单位秒
  34. client_body_timeout 30s; # 指定用于读取客户端请求报文主体的超时时长,单位秒
  35. send_timeout 30s; # 指定用于向客户端发送响应报文的超时时长,单位秒
  36. include /usr/local/nginx/conf/conf.d/*.conf;
  37. }