nginx反向代理上游服务器主从配置

news/2024/11/16 18:36:24 标签: nginx, 服务器, 运维, 后端, 代理模式

nginx.conf中可以将location反向代理到一个或多个上游服务器处理,其中多个上游服务器可以配置成一个上游服务器组,并定义相应的NLB策略来相应请求,比如默认的轮询、最少连接数、IP哈希、权重等。
我们考虑另外一种主从的场景,只要主服务器可以正常响应就一直由主服务器处理请求,当主服务器响应出错时,再由从服务器来处理请求。那么location段可以这样配置:

	location /api/ {
		proxy_pass    http://master.demo.com.cn/api; 
		error_page 502 503 504 = @backup;
		}

	location @backup {
		return 302 https://slave.demo.com.cn/api;
		}

如果我们还想再多尝试访问一次主服务器确实不好使再转向从服务器的话,可以这样写:

	location /api/ {
		proxy_pass    http://master.demo.com.cn/api; 
		proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
		proxy_next_upstream_tries 1;
		error_page 502 503 504 = @backup;
		}

	location @backup {
		return 302 https://slave.demo.com.cn/api;
		}

proxy_next_upstream 参数一般用于配置了多个上游服务器的上游服务器组,会尝试转发到另外一台上游服务器,不过如果没有没有配置上游服务器组的话,它会对于那唯一的一台服务器再次尝试一次。


http://www.niftyadmin.cn/n/5754511.html

相关文章

Gin 框架中的路由

1、路由概述 路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET、POST 等) 组成的,涉及到应用如何响应客户端对某个网站节点的访问。 RESTful API 是目前比较成熟的一套互联网应…

redis序列化数据查询

可以看到是HashMap,那么是序列化的数据 那么我们来获得反序列化数据 import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.ObjectInputStream; import redis.clients.jedis.Jedis;public class RedisDeserializeDemo {public static…

【数据结构】【线性表】静态链表(附C语言源码)

静态链表 链表是物理结构为链式的线性表,其每个结点的存储位置不一定是连续的,每个结点依靠结点元素的中的指针线性相连。但有时候为了方便管理内存空间,会将链表的各个结点存储空间放在一块,其实现方式类似于数组,只…

World of Warcraft [WeakAuras]Barney Raid Kit - Collapsing Star Indicator

https://wago.io/BarneyCS 黄色数字表示需要修的血量。 绿色数字表示停止修血。 红色数字表示修血过量,以及该坍缩星将在大爆炸读条结束前多少秒爆炸。 Numbers in yellow means damage required. Numbers in green means HP is good, dont damage anymore. Numbers…

ES数据迁移方式

elasticdump 需要安装elasticdump ,node插件 #!/bin/bashindexes("index1" "index2")for index in "${indexes[]}" doecho "backup ${index} start"#--type: 迁移类型,默认为 data,表明只迁移数据…

python:用 sklearn 构建 K-Means 聚类模型

pip install scikit-learn 或者 直接用 Anaconda3 sklearn 提供了 preprocessing 数据预处理模块、cluster 聚类模型、manifold.TSNE 数据降维模块。 编写 test_sklearn_3.py 如下 # -*- coding: utf-8 -*- """ 使用 sklearn 构建 K-Means 聚类模型 "&…

【提高篇】3.3 GPIO(三,工作模式详解 上)

目录 一,工作模式介绍 二,输入浮空 2.1 输入浮空简介 2.2 输入浮空特点 2.3 按键检测示例 2.4 高阻态 三,输入上拉 3.1 输入上拉简介 3.2 输入上拉的特点 3.3 按键检测示例 四,输入下拉 4.1 输入下拉简介 4.2 输入下拉特点 4.3 按键检测示例 一,工作模式介绍…

用redis的zset实现日榜,周榜,月榜

思路&#xff1a; 1.初始化一个月的数据&#xff1a; /*** 初始化一个月数据*/Testpublic void initMonthData(){//计算当前时间小时的keylong hourSystem.currentTimeMillis()/(1000*60*60);for(int i1;i<24*30;i){String key"W_hour"(hour-i);Random random new…