upstream模块的内容应放于 nginx.conf 配置的 http{} 标签内,其默认的调度算法是rr (轮循 round-robin)
https://www.cnblogs.com/yanjieli/p/10669846.html
https://www.jianshu.com/p/8671c40a5be8
https://blog.csdn.net/LL845876425/article/details/97621365
https://wiki.jikexueyuan.com/project/nginx/upstream-module.html
http://tengine.taobao.org/book/chapter_05.html
Nginx中的upstream模块是一种配置方式,用于定义服务器组,以便Nginx可以向这些服务器代理传入的请求。这个模块主要用于负载均衡和反向代理配置。通过upstream,你可以指定一组后端服务器,Nginx将根据配置的策略(如轮询、最少连接、IP哈希等)将请求分发给这些服务器。
作用
- 负载均衡:
upstream模块可以帮助分散到单个服务器的负载,通过将请求分发到多个后端服务器上,提高了系统的整体可用性和吞吐量。 - 故障转移:如果配置了多个服务器,当其中一个服务器出现故障时,Nginx可以自动将请求转发到其他健康的服务器,从而提高了系统的鲁棒性。
- 可伸缩性:通过向
upstream组添加更多服务器,可以轻松扩展系统来处理更多的请求,而无需对客户端或前端代理进行任何更改。
举例说明
假设你有一个Web应用,部署在多个服务器上,你希望使用Nginx来分发用户的请求到这些服务器。下面是一个基本的upstream配置示例:
1 | http { |
在这个例子中:
- 定义了一个名为
myapp的upstream组,包含了三个后端服务器(backend1.example.com、backend2.example.com和backend3.example.com)。其中,backend3被标记为down,表示这个服务器当前不参与处理请求。 - 在
server块中,所有到达端口80的HTTP请求都会被代理到myapp这个upstream组中的服务器。 - Nginx将根据预定义的负载均衡策略(默认是轮询)来将请求转发给
backend1和backend2。
通过这种配置,你可以实现请求的负载均衡和简单的故障转移,提高应用的可用性和伸缩性。
http://dockone.io/article/2434430
https://www.nginx.org.cn/article/detail/220
https://www.cnblogs.com/throwable/p/13113620.html
至此,Consul单机伪集群搭建完成(其实分布式集群的搭建大同小异,注意集群节点所在的机器需要开放使用到的端口的访问权限),由于Consul使用Raft作为共识算法,该算法是强领导者模型,也就是只有Leader节点可以进行写操作
原文链接: https://dashen.tech/2010/03/18/Nginx-upstream模块/
版权声明: 转载请注明出处.