Tengine + Luajit2

系统账号及环境配置

sudo useradd -g 100 -u 200 user_00
sudo groupadd -g 300 www
sudo useradd -g 300 -u 300 -s /sbin/nologin www
sudo mkdir -p /usr/local/services/src
sudo chown -R user_00.usrs /usr/local/services
su - user_00
cd /usr/local/services/src

LuaJIT部署

$ wget http://luajit.org/download/LuaJIT-2.1.0-beta2.tar.gz
tar xf LuaJIT-2.1.0-beta1.tar.gz
cd LuaJIT-2.1.0-beta1
make PREFIX=/usr/local/services
make install PREFIX=/usr/local/services
echo "/usr/local/services/lib" |sudo tee -a /etc/ld.so.conf
sudo ldconfig

Tengine 部署

$ wget http://tengine.taobao.org/download/tengine-2.1.2.tar.gz
$ wget ftp://ftp.lanet.lv/pub/unix/security/libmd5-0.8.2b.tar.gz
$ wget https://sourceforge.net/projects/pcre/files/pcre/8.39/pcre-8.39.tar.gz/download
$ wget https://www.openssl.org/source/openssl-1.0.2j.tar.gz
$ ./configure \
--prefix=/usr/local/services/tengine-2.1.2 \
--user=www \
--group=www \
--with-http_ssl_module \
--with-http_lua_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-sha1=/usr \
--with-openssl=/usr/local/services/src/openssl-1.0.2j \
--with-md5=/usr/local/services/src/md5 \
--with-pcre=/usr/local/services/src/pcre-8.39 \
--with-luajit-inc=/usr/local/services/include/luajit-2.1 \
--with-luajit-lib=/usr/local/services/lib \
--without-select_module --without-poll_module \
--without-http_userid_module \
--without-mail_pop3_module \
--without-mail_imap_module >/dev/null
make >/dev/null && make install >/dev/null
 
cd /usr/local/services/tengine-2.1.2
mkdir {temp,conf/sites-{available,enabled}}
sudo chown www.www temp

Tengine 主配置文件

cd /usr/local/services/tengine-2.1.2/conf
cat nginx.conf
user www www;
worker_processes 2;
worker_cpu_affinity auto;
pid        logs/nginx.pid;
error_log  logs/error.log  error;
#Specifies the value for maximum file descriptors that can be opened by this process.
events {
    use epoll;
    worker_connections  102400;
}
worker_rlimit_nofile 102400;
http {
    include       mime.types;
    server_info   off;
    server_tokens off;
    server_tag    off;
    default_type  application/octet-stream;
    real_ip_header X-Forwarded-For;
    set_real_ip_from 172.31.0.0/16;
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" $request_time $upstream_response_time $host';
    server_names_hash_bucket_size 256;
    client_header_buffer_size 256k;
    large_client_header_buffers 8 128k;
    client_max_body_size    8m;
    sendfile          on;
    tcp_nopush        on;
    tcp_nodelay       on;
    keepalive_timeout 60;
    proxy_connect_timeout 100s;
    proxy_read_timeout 300;
    proxy_send_timeout 300;
    proxy_buffer_size 512k;
    proxy_buffers  16 256k;
    proxy_busy_buffers_size 512k;
    proxy_temp_file_write_size 512k;
    proxy_ignore_client_abort on;
    gzip              on;
    gzip_min_length   1k;
    gzip_buffers      4 16k;
    gzip_http_version 1.0;
    gzip_comp_level   2;
    gzip_types        text/plain application/javascript application/x-javascript text/css application/xml text/javascript;
    gzip_vary         on;
    charset           utf-8;
    access_log        logs/access.log main;
    log_not_found     off;
    ssi               on;
    ssi_silent_errors on;
    ssi_types         text/shtml;
    fastcgi_temp_path     temp/fastcgi_temp;
    client_body_temp_path temp/client_body_temp;
    proxy_temp_path       temp/proxy_temp;
    scgi_temp_path        temp/scgi_temp;
    uwsgi_temp_path       temp/uwsgi_temp;
    #error_page  500 502 503 504      /50x.html;
    #error_page  400 403 405 408 404  /40x.html;
    req_status_zone server "$host" 256M;
    req_status_zone_add_indicator server $limit;
    upstream appname {
        server 127.0.0.1:8000     weight=1;
        server 127.0.0.2:8000     weight=1;
        keepalive 600;
        check interval=5000 rise=2 fall=5 timeout=1000 type=http;
        check_keepalive_requests 100;
        check_http_send "HEAD / HTTP/1.0\r\nConnection: keep-alive\r\n\r\n";
        check_http_expect_alive http_2xx http_3xx;
    }
    server {
        listen       80 default;
        server_name  _;
        return       444;
        access_log   off;
    }
include sites-enabled/*.conf;
}

Tomcat 动静分离

cd /usr/local/services/tengine-2.1.2/conf/sites-available
cat www.soa.com.conf
server {
    listen      80;
    server_name www.soa.com;
    root        /data/apps/soa/appname;
    req_status  server;
 
    location / {
        index index.html index.jsp;
        try_files $uri $uri/ @proxy;
    }
 
    location @proxy {
        proxy_pass http://appname;
    }
 
    location ~ \.jsp$ {
        proxy_redirect off;
        proxy_pass http://www.esearchapi.com;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
 
    location ~ .*\.(js|css)?$ {
        expires      12h;
    }
 
    location ~ .*\.(gif|jpg|jpeg|png|bmp)$ {
        expires      1d;
    }
}

Tengine 运行状态,用于监控

cd /usr/local/services/tengine-2.1.2/conf/sites-available
cat 127.0.0.1.conf
server {
    listen          80;
    server_name     127.0.0.1;
    access_log      off;
 
    set $limit 0;
    if ($arg_limit = '1') { set $limit 1; }
 
    location /stats {
        stub_status on;
    }  
 
    location /upstream_stats {
        check_status;
    }  
 
    location /request_stats {
        req_status_show;
        req_status_show_field req_total conn_total bytes_in bytes_out rt
        http_200 http_404 http_403 http_500 http_502 http_503 http_504
        http_2xx http_3xx http_4xx http_5xx http_other_status $limit;
    }  
}

Nginx 部署及配置的更多相关文章

  1. linux下nginx部署以及配置详解

    1.下载源码包解压编译 启动多个,请看:在linux系统下安装两个nginx以及启动 查看nginx包路径:http://nginx.org/download/,两种下载方式: 1.在官网下载使用Xf ...

  2. Nginx 部署、反向代理配置、负载均衡

    Nginx 部署.反向代理配置.负载均衡 最近我们的angular项目部署,我们采用的的是Nginx,下面对Nginx做一个简单的介绍. 为什么选择Nginx 轻:相比于Apache,同样的web服务 ...

  3. 菜鸟nginx源代码剖析 配置与部署篇(一) 手把手实现nginx "I love you"

    菜鸟nginx源代码剖析 配置与部署篇(一) 手把手配置nginx "I love you" Author:Echo Chen(陈斌) Email:chenb19870707@gm ...

  4. Linux中Nginx服务器的部署和配置

    目录 Nginx安装方式: yum源安装 目录结构: 源码包安装 目录结构: Nginx中支持PHP Nginx中配置php对mysql数据库的支持 Nginx配置反向代理服务器 正常代理 根据不同端 ...

  5. 使用nginx部署Django静态文件配置

    首先,我们配置静态文件,要在setting.py里面加入如下几行代码: # settings.py # the settings above # STATIC SETTINGS STATIC_URL ...

  6. Tomcat服务部署与Nginx负载均衡配置

    一.中间键产品介绍 目前来说IBM的WebSphere,Oracle的Weblogic占据了市场上java语言Web站点的部分份额,该两种软件都是商业化的软件,由于性能优越,可靠性高等优点应用于大型互 ...

  7. Nginx部署vue项目的配置

    . 官网下载 http://nginx.org/en/download.html 选择stable version nginx/Windows-1.14.1 pgp . 解压 然后配置环境变量,如果环 ...

  8. CentOS Mono Nginx 部署 MVC4+WebApi

    CentOS Mono Nginx 部署 MVC4+WebApi 经过几天的折磨,终于在CentOS上成功部署了MVC4+WebApi.Mono上的服务器推荐两种:Jexus(国产高人写的一款很牛的服 ...

  9. windows下nginx安装、配置与使用(转载)

    目前国内各大门户网站已经部署了Nginx,如新浪.网易.腾讯等:国内几个重要的视频分享网站也部署了Nginx,如六房间.酷6等.新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx ...

随机推荐

  1. GoCenter助力Golang全速前进

    一.背景 Go语言是Google开发的一种静态强类型.编译型.并发型,并具有垃圾回收功能的编程语言.为了方便搜索和识别,有时会将其称为Golang.自2009年11月Google正式宣布推出,成为开放 ...

  2. Scala实践10

    1.模式匹配 模式匹配是一种根据模式检查值的机制.它是switch(Java中语句)的更强大版本,它同样可以用来代替一系列if / else语句. 句法 匹配表达式具有值,match关键字和至少一个c ...

  3. Spring 框架学习(1)--Spring、Spring MVC扫盲

    纸上得来终觉浅,绝知此事要躬行 文章大纲 什么是spring 传统Java web应用架构 更强的Java Web应用架构--MVC框架 Spring--粘合式框架 spring的内涵 spring核 ...

  4. Java 遍历集合时产生的ConcurrentModificationException异常

    前几天做Java实验的时候,打算用foreach遍历一个ArrayList集合,并且当集合中的某个元素符合某个值时删除这个元素.写完运行时抛出了ConcurrentModificationExcept ...

  5. <a>标签的href和onclick属性【转】

    1链接的onclick 事件被先执行,其次是href属性下的动作(页面跳转,或 javascript 伪链接): 2假设链接中同时存在href 与onclick,如果想让href 属性下的动作不执行, ...

  6. 华为,小米部分机型微信浏览器rem不适配的解决方案

    针对近日华为,小米的部分机型,在升级系统或升级微信之后,微信内置浏览器产生的rem不能正确填充满的问题,有如下解决方案 目前来看,产生这个情况的原因是因为给html附font-size时,附上的fon ...

  7. Nginx作为静态web服务器——缓存原理

    浏览器缓存 ​ 客户端无缓存的情况下 ​ 客户端有缓存的情况下 ​ 校验过期机制 ​ 本地客户端会检查Cache-Control(max-age)缓存是否过期,(max-age)为过期时间 Last- ...

  8. 个人任务Day3

    昨日成果: 学习有关java的网络爬虫知识. 今日任务: 向数据库中完善数据,并写出选择查看团队博客的界面.

  9. 深入学习MySQL 03 Schema与数据类型优化

    Schema是什么鬼 schema就是数据库对象的集合,这个集合包含了各种对象如:表.视图.存储过程.索引等.为了区分不同的集合,就需要给不同的集合起不同的名字,默认情况下一个用户对应一个集合,用户的 ...

  10. jmeter使用—正则表达式提取器

    当我们测试接口的时候,有些请求参数是需要从上个接口返回获取的数据,这样的话我们就需要用到关联了.今天我们使用的关联是正则表达式提取器来进行获取需要关联的数据. 下面来具体说明正则表达式提取器的使用方法 ...