Nginx中的upstream 分配方法

轮询
轮询是upstream的默认分配方式,即每个请求按照时间顺序轮流分配到不同的后端服务器,如果某个后端服务器down掉后,能自动剔除。
upstream www_cc_com {
server 192.168.1.1:8001;
server 192.168.1.2:8002;
server 192.168.1.3:8003;
}
weight
指定轮询比率,weight和访问几率成正比,主要应用于后端服务器性能差异的场景下。
upstream www_cc_com{
server 192.168.1.1 weight=1; #1/6的概率
server 192.168.1.2 weight=2; #1/3的概率
server 192.168.1.3 weight=3; #1/2的概率
}
ip_hash
每个请求按照访问ip(即Nginx的前置服务器或者客户端IP)的hash结果分配,这样每个访客会固定访问一个后端服务器,可以解决session一致问题。
upstream www_cc_com{
ip_hash;
server 192.168.1.1:8001;
server 192.168.1.2:8002;
server 192.168.1.3:8003;
}
fair
公平地按照后端服务器的响应时间来分配请求,响应时间短的后端服务器优先分配请求。
upstream www_cc_com{
server 192.168.1.1;
server 192.168.1.2;
server 192.168.1.3;
fair;
}
url_hash (没怎么去用 所以就不写啦)
访问url的hash结果来分配请求,使得每个url定向到同一个后端服务器,主要应用于后端服务器为缓存时的场景下。

原文地址:https://www.cnblogs.com/Liang-jc/p/9577843.html

时间: 2024-10-18 15:21:41

Nginx中的upstream 分配方法的相关文章

Nginx 中的 upstream 与 subrequest 机制

概述 Nginx 提供了两种全异步方式与第三方服务进行通信:upstream 和 subrequest.upstream 在与第三方服务器交互时(包括建立 TCP 连接.发送请求.接收响应.关闭 TCP 连接),不会阻塞 Nginx 进程处理其他请求.subrequest 只是分解复杂请求的一种设计模式,它可以把原始请求分解为多个子请求,使得诸多请求协同完成一个用户请求,并且每个请求只关注一个功能.subrequest 访问第三方服务最终也是基于 upstream 实现的. upstream 被

nginx中文件路径表示方法

nginx指定文件路径有两种方式root和alias,这两者的用法区别,使用方法总结了下,方便大家在应用过程中,快速响应.root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上. [root]语法:root path默认值:root html配置段:http.server.location.if [alias]语法:alias path配置段:location 实例: location ~ ^/weblogs/ {   

C++的STL中vector内存分配方法的简单探索

STL中vector什么时候会自动分配内存,又是怎么分配的呢? 环境:Linux  CentOS 5.2 1.代码 #include <vector> #include <stdio.h> using namespace std; int main() { vector<int> x_vec; printf("data size : [%3d], mem size : [%3d]\n", x_vec.size(), x_vec.capacity())

Nginx 中 upstream 机制的负载均衡

负载均衡 upstream 机制使得 Nginx 以反向代理的形式运行,因此 Nginx 接收客户端的请求,并根据客户端的请求,Nginx 选择合适后端服务器来处理该请求.但是若存在多台后端服务器时,Nginx 是根据怎样的策略来决定哪个后端服务器负责处理请求?这就涉及到后端服务器的负载均衡问题. Nginx 的负载均衡策略可以划分为两大类:内置策略 和 扩展策略.内置策略包含 加权轮询 和 IP hash,在默认情况下这两种策略会编译进 Nginx 内核,只需在 Nginx 配置中指明参数即可

Nginx 中 upstream 机制的实现

概述 upstream 机制使得 Nginx 成为一个反向代理服务器,Nginx 接收来自下游客户端的 http 请求,并处理该请求,同时根据该请求向上游服务器发送 tcp 请求报文,上游服务器会根据该请求返回相应地响应报文,Nginx 根据上游服务器的响应报文,决定是否向下游客户端转发响应报文.另外 upstream 机制提供了负载均衡的功能,可以将请求负载均衡到集群服务器的某个服务器上面. 启动 upstream 在 Nginx 中调用 ngx_http_upstream_init 方法启动

nginx中upstream模块的简单示例

本文所指的upstream是nginx的http模块中的内容对nginx来说,upstream可以在nginx上将后端服务器定义为服务器组,将不同后端不同的服务器划分为不同的组,再经过不同组内的调度算法实现负载均衡.和缓存设置类似,upstream需要先在http下定义,再被调用,方可正常使用.示例: http { -- upstream webserver { #定义名为webserver的组 server 192.168.1.111:80; server 192.168.1.222:80;

Nginx中的惊群现象解决方法

*什么是惊群现象?Nginx中用了什么方法来避免这种问题的发生?本篇就解决这两个问题...→_→* 惊群现象的定义与危害 在Nginx中,每一个worker进程都是由master进程fork出来的.master进程创建socket后进行listen.bind操作,fork出来的worker继承了socket,调用accpet开始监听等待网络连接 如果这时有多个worker进程都在等待事件的发生.当事件发生时,这些worker进程被同时唤醒,但最终只有一个worker进程可以处理事件成功,其他的w

Nginx常见错误及处理方法(转)

404 bad request 一般原因:请求的Header过大 解决方法:配置nginx.conf相关设置 client_header_buffer_size 16k; large_client_header_buffers 4 64k;  413 Request Entity Too Large 一般原因:一般出现在上传文件 解决方法:配置nginx.conf相关设置 client_max_body_size 10m; 配置php.ini如下(必须和nginx.conf配置一致) post_

Nginx中虚拟主机配置

一.Nginx中虚拟主机配置 1.基于域名的虚拟主机配置 1.修改宿主机的hosts文件(系统盘/windows/system32/driver/etc/HOSTS) linux : vim /etc/hosts 格式: ip地址 域名 eg: 192.168.3.172 www.gerry.com 2.在nginx.conf文件中配置server段 server {   listen 80;   server_name www.gerry.com; # 域名区分       location