1. 安装
安装nginx动态upstream配置模块,如果你已经安装了nginx,那么轻参考ttlsa上的如何安装nginx第三方模块,会安装的请跳过.
cd /usr/local/src/
# wget https://github.com/yzprofile/ngx_http_dyups_module/archive/master.zip \
-O ngx_http_dyups_module-master.zip
# unzip ngx_http_dyups_module-master.zip
# wget http://nginx.org/download/nginx-1.4.2.tar.gz
# tar -xzvf nginx-1.4.2.tar.gz
# cd nginx-1.4.2
# ./configure --prefix=/usr/local/nginx-1.4.2 --with-http_stub_status_module
\--add-module=../ngx_http_dyups_module-master/
# make
# make install
2. 指令
模块: dyups_interface
3. restful接口
GET /detail 获取所有upstream名称以及upstream里面的servers信息 /list 获取upstream列表 /upstream/name 使用upstream名称获取upstream信息 POST /upstream/name 更新upstream body 配置内容; body server ip:port; DELETE /upstream/name 删除upstream,name相应修改 3.1 调用接口响应http状态码 500: 需要reload nginx 409: 重新调用一次接口,上个请求被锁了. 204:调用list或者detail时出现,表示没有响应内容 其他:你的命令错误,请修改 注意:你需要第三方模块来生成新的配置文件到nginx配置目录.
4. nginx配置
http {
# 从upstream读取初始upstream配置
dyups_upstream_conf conf/upstream.conf;
include conf/upstream.conf;
# 默认主机
server {
listen 80;
location / {
proxy_pass http://$host;
}
}
# 动态配置upstream的接口站点
server {
listen 81;
location / {
dyups_interface; # 这个指令表示这边是接口站点
}
}
# upstream后面的realserver,2台801,,82
server {
listen 801;
location / {
echo 801;
}
}
server {
listen 802;
location / {
echo 802;
}
}
}
upstream.conf配置
upstream ttlsa1 {
server 127.0.0.1:801;
}
upstream ttlsa12 {
server 127.0.0.1:802;
}
5. 使用方法演示
添加upstream
# curl -d "server 127.0.0.1:801;server 127.0.0.1:802;" 127.0.0.1:81/upstream/ttlsa3
success
测试
# curl -H "host: ttlsa3" 127.0.0.1
801
# curl -H "host: ttlsa3" 127.0.0.1
802
查看upstream详细信息
curl 127.0.0.1:81/detail
删除upstream
curl -i -X DELETE 127.0.0.1:81/upstream/ttlsa1
增加带ip_hash的upstream
curl -d "ip_hash;server 127.0.0.1:801;server 127.0.0.1:802;" 127.0.0.1:81/upstream/ttlsa4
curl 127.0.0.1:81/upstream/ttlsa4
有问题请加博主微信进行沟通!
全部评论