当前位置:首页 > 技术文章 > 正文内容

Nginx动态配置upstream(nginx动态配置修改)

arlanguage3个月前 (01-31)技术文章28

通过使用ngx_http_dyups_module模块,动态配置upstream。这个模块使用rest接口. 简单,方便,并且可以不需要重启nginx。

但是有个问题比较明显,数据都保存在内存里面,nginx重启之后,什么都没了。

1、安装ngx_http_dyups_module

  • 需要利用Nginx源码,重新编译引入ngx_http_dyups_module模块。
  • 以下为用到的Nginx版本1.20.1和ngx_http_dyups_module模块源码

进入源码下载模块,进行解压和编译工作

tar -xvzf nginx-1.20.1.tar.gz nginx-1.20.1
unzip ngx_http_dyups_module.zip
cd nginx-1.20.1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=../ngx_http_dyups_module-master

如果出现以下,说明加载模块成功了

进行编译

make

如果编译有错误,需要修改objs目录下的Makefile配置文件,去除-Werror的报警。

cd objs
vim Makefile

把"-Werror"删除掉,保存文件。

再次执行make命令


可以在objs目录下查看编译的nginx执行文件

./nginx -V

查看nginx模块信息,如果跟指定编译时候的信息一致,说明编译成功了(mac体验机下面没有安装http_ssl_module模块)



根据实际情况来决定是否要执行make install 命令来替换安装nginx ,还是通过手动替换nginx命令;手动替换命令前先要备份原有的nginx命令

如果是第一次安装,那就直接执行make install


2、Nginx配置文件里设置dyups_interface

   # upstream定义
   upstream igao-upstream {
        #ip_hash;
        #主服务器
           server 127.0.0.1:8092 weight=3;
        #备用服务器
        server 127.0.0.1:8093 weight=1;
    }

# dyups_interface配置
server {
      listen       8888;
      server_name  localhost;

      location / {
          allow 127.0.0.1;
          deny all;
          dyups_interface;
     }
   }
   
#设置upstream变量,再转发
      server {
        listen       8080;
        server_name  localhost;

        location / {
            ...
            #设置upstream变量,再转发
            set $ups  igao-upstream变量,再转发;
            proxy_pass http://$ups;
            #proxy_pass http://igao-upstream;
        }
    }


3、Restful接口

  1. /list 获取upstream列表(第一次没有添加过upstram时候,没有数据)
curl 127.0.0.1:8888/list


  1. /upstream/name 更新upstream
curl -d "server 127.0.0.1:8092 weight=1 down; server 127.0.0.1:8093 weight=3;" 127.0.0.1:8888/upstream/igao-upstream
  1. /upstream/name 删除upstream,name相应修改
curl -i -X DELETE 127.0.0.1:8888/upstream/igao-upstream

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/1271.html

标签: nginx 源代码
分享给朋友:

“Nginx动态配置upstream(nginx动态配置修改)” 的相关文章

Linux中完全卸载nginx并重新安装

一、卸载停止Nginx软件/usr/local/nginx/sbin/nginx -s stop如果不知道nginx安装路径,可以通过执行ps命令找到nginx程序的PID,然后kill其PIDps -aux |grep nginx查找根下所有包含nginx的文件sudo find / -name...

Nginx 负载均衡配置教程以及 upstream 详解

一、通用配置在 Nginx 中配置负载均衡非常简单。通过定义一个 upstream 块,你可以指定多个后端服务器用于负载均衡。下面是一个基本的例子:http { upstream myapp { server backend1.example.com;...

haproxy负载均衡入门到转行

haproxy概述haproxy是一款开源的高性能的反向代理或者说是负载均衡服务软件之一,支持双机热备,虚拟主机基于TCP/HTTP应用代理,具有图形界面等功能。其配置简单,而且拥有很好的对服务器节点的健康检查功能(相当于keepalived健康检查),当其代理的后端服务器出现故障时,haproxy...

docker安装php

本节将介绍在线使用Docker安装PHP解析器的步骤。通过本节的实操,您可以掌握从Docker环境的使用,PHP镜像以及Nginx服务器的拉取、导入、容器的启动的全部过程,从而具备使用Docker安装并部署PHP与ngninx的能力。本节要求您具备的基本能力有Linux,Docker,以及nginx...

nginx检查提示“unknown directive "stream" in /etc/*/nginx.conf”

yum安装nginx检查时提示“unknown directive "stream" in /etc/nginx/nginx.conf”yum安装nginx,在配置反代时,出现错误:nginx -tnginx: [emerg] unknown directive "strea...

Linux 网络延迟排查方法 linux延迟10秒

在 Linux 服务器中,可以通过内核调优、DPDK 以及 XDP 等多种方式提高服务器的抗攻击能力,降低 DDoS 对正常服务的影响。在应用程序中,可以使用各级缓存、WAF、CDN 等来缓解 DDoS 对应用程序的影响。但是需要注意的是,如果 DDoS 流量已经到达 Linux 服务器,那么即使应...