tengine dyups模塊動態(tài)更新upstream

目標(biāo)

測試tengine 動態(tài)upstream的功能,為后續(xù)動態(tài)升級提供服務(wù)支持
該功能實時修改內(nèi)存數(shù)據(jù),無需reload

環(huán)境

  • centos 7 mini版
  • java 1.8 運行兩個測試程序分別監(jiān)聽7079和7080端口
  • tengine2.1.2 最新版本已經(jīng)去除動態(tài)upstream功能

安裝步驟

安裝基礎(chǔ)環(huán)境

jemalloc-4.4.0.tar.bz2

 wget https://github.com/jemalloc/jemalloc/releases/download/4.4.0/jemalloc-4.4.0.tar.bz2
yum install bzip2
tar xjf jemalloc-4.4.0.tar.bz2
cd jemalloc-4.4.0
./configure
make && make install
echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf
ldconfig
yum install gcc openssl-devel gd-devel pcre-devel libxml2-devel libxslt-devel GeoIP-devel perl-devel lua-devel -y

tengine安裝

wget http://tengine.taobao.org/download/tengine-2.1.2.tar.gz
tar -zxvf tengine-2.1.2.tar.gz 
cd tengine-2.1.2
./configure --prefix=/root/web/nginx/tengine --enable-mods-static=all --with-http_upstream_check_module --with-http_v2_module --with-http_dyups_module --with-http_dyups_lua_api --with-http_sysguard_module

make && make install

tengine 配置

nginx.conf

user  nobody;
worker_processes  2;
error_log  logs/error.log  debug;
pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
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;
    keepalive_timeout  65;
    gzip  on;
    dyups_upstream_conf  vhost/upstream.conf;
    include vhost/upstream.conf;
    server {
        listen   80;
        location / {
            proxy_pass http://java;
        }
    }
    server {
        listen 8081;
        location / {
            dyups_interface;
        }
    }
}

在nginx.conf同級目錄下創(chuàng)建vhost/upstream.conf文件

upstream java1 {
    server 127.0.0.1:7079;
}

upstream java2 {
    server 127.0.0.1:7080;
}

upstream java {
    server 127.0.0.1:7079;
    server 127.0.0.1:7080;
}

啟動nginx

./sbin/nginx

配置文件修改后重載

./sbin/nginx -s reload

upstream測試

查看upstream list

curl 127.0.0.1:8081/list

res

java2
java
java1

查看upstream 明細

curl 127.0.0.1:8081/detail

res

java2
server 127.0.0.1:7080

java
server 127.0.0.1:7079
server 127.0.0.1:7080

java1
server 127.0.0.1:8088

修改指定upstream

curl -d "server 127.0.0.1:7079;" 127.0.0.1:8081/upstream/java1

res

success

查看修改后的效果

curl 127.0.0.1:8081/upstream/java1

res

server 127.0.0.1:7079
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容