# Tengine 安装

# 1、官网下载安装包

下载最新稳定版本 http://tengine.taobao.org/download_cn.html

# 2、安装 Tengine

安装Tengine依赖库

yum install -y gcc gcc-c++ autoconf automake pcre pcre-devel zlib zlib-devel openssl openssl-devel

下载

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

解压安装包

tar -zxvf tengine-2.3.2.tar.gz

cd 进入解压后文件路径,然后执行

./configure --user=nobody --group=nobody --prefix=/usr/local/nginx \
 --pid-path=/var/run/nginx/nginx.pid \
 --lock-path=/var/lock/nginx.lock \
 --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module \
 --with-pcre

如果没有错误,接着执行:

make && make install

# 3、基本配置

安装好Nginx后

修改Nginx配置文件:

vi /usr/local/nginx/conf/nginx.conf

 

























































#user  nobody;
# ** nginx 进程数,建议按照cpu 数目来指定
worker_processes  4;

error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

pid        logs/nginx.pid;

events {
  use   epoll;
  worker_connections 4096;
}

http {
  include       mime.types;
  default_type  application/octet-stream;

  log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';

  #access_log  logs/access.log  main;

  sendfile        on;
  #tcp_nopush     on;

  # 自定义缓冲区相关设置
  client_body_buffer_size 1K;
  client_header_buffer_size 1k;
  client_max_body_size 50m;
  large_client_header_buffers 2 1k;
  #超时相关设置
  client_body_timeout 60;
  client_header_timeout 60;
  keepalive_timeout 65;
  send_timeout 60;
  # X-Forwarded-For
  real_ip_header X-Forwarded-For;
  #gzip
  gzip on;
  gzip_min_length 1000;
  gzip_buffers 4 8k;
  gzip_disable "MSIE [1-6].";
  gzip_types text/plain text/css application/javascript text/javascript application/x-javascript text/xml application/xml application/xml+rss application/json;
  #隐藏nginx版本号
  server_tokens off;

  # 限流配置 申请一个10m的空间存储限制数据,通过remote_addr这个标识来做限制,相同IP最大100次每秒
  limit_req_zone $binary_remote_addr zone=perip:20m rate=100r/s;

  # 并发限制
  limit_conn_zone $server_name zone=perserver:20m;

  include /usr/local/nginx/conf/conf.d/*.conf;
}

根据实际情况配置 请配置为CPU核数 worker_processes 4;

创建配置目录

mkdir /usr/local/nginx/conf/conf.d

# 3、业务配置

目录创建

mkdir /cslc/www
mkdir /cslc/www/econtract-web
mkdir /cslc/www/hsweb

# 电子合同控制台前端

创建配置文件

cd /usr/local/nginx/conf/conf.d
vi econtract.conf

内容:

server {
    listen 80;
    # ** 这里要填写 电子合同控制台 域名
    server_name ec.cslc.cn;
    access_log  "pipe:rollback logs/econtract.log interval=1d baknum=7 maxsize=2G"  main;

    # 允许100个请求排队 多余直接503
    limit_req zone=perip burst=100 nodelay;

    # 表示该服务提供的总连接数不得超过2048
    limit_conn perserver 2048;

    location / {
      expires -1;
      add_header Pragma "no-cache";
      add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
      root /cslc/www/econtract-web;
      try_files $uri $uri/ /index.html =404;
    }

    location /api/fs/ {
        proxy_set_header    Host    $host;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        # ** 这里需要配置文件服务的F5地址
        proxy_pass http://172.16.3.228:20128/bizadmin/fs/;
    }

    location /api/ {
        proxy_set_header    Host    $host;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        # ** 这里需要配置电子合同服务的F5地址
        proxy_pass http://172.16.3.228:8600/bizadmin/;
    }
}

# 电子合同手写屏前端

创建配置文件

cd /usr/local/nginx/conf/conf.d
vi hs.conf

内容:

server {
    listen 80;

    # ** 这里要填写 手写屏的域名
    server_name ec-hs.cslc.cn;
    access_log  "pipe:rollback logs/hs.log interval=1d baknum=7 maxsize=2G"  main;

    # 允许50个请求排队 多余直接503
    limit_req zone=perip burst=50 nodelay;

    # 表示该服务提供的总连接数不得超过1024
    limit_conn perserver 1024;

    location / {
      expires -1;
      add_header Pragma "no-cache";
      add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
      root /cslc/www/hsweb;
      try_files $uri $uri/ /index.html =404;
    }

    location /api/ {
        proxy_set_header    Host    $host;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        # ** 这里需要配置电子合同服务的F5地址
        proxy_pass http://172.16.3.228:8600/handwriting-screen/;
    }
}

# 文件服务

创建配置文件

cd /usr/local/nginx/conf/conf.d
vi fs.conf

内容:

server {
  # 端口
  listen  80;

  # ** 这里要填写 文件服务的域名
  server_name ec-fs.cslc.cn;

  access_log  "pipe:rollback logs/fs.log interval=1d baknum=7 maxsize=2G"  main;

  # 允许50个请求排队 多余直接503
  limit_req zone=perip burst=50 nodelay;

  # 表示该服务提供的总连接数不得超过1024
  limit_conn perserver 1024;

  location / {
    proxy_set_header    Host    $host;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    # ** 这里需要配置FS服务的F5地址
    proxy_pass http://172.16.3.228:8600/web/;
  }
}

# 4、配置开机启动

切换到cd /lib/systemd/system/目录,创建nginx.service文件vi nginx.service

vi /lib/systemd/system/nginx.service

文件内容如下:

[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

退出并保存文件

执行使nginx开机启动

systemctl enable nginx
systemctl start nginx

启动nginx

systemctl start nginx

结束nginx

systemctl stop nginx

重启nginx

systemctl restart nginx

最后更新于: 11/12/2020, 9:33:02 PM