惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
宝玉的分享
宝玉的分享
月光博客
月光博客
小众软件
小众软件
Jina AI
Jina AI
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
博客园 - 司徒正美
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
G
Google Developers Blog
M
MIT News - Artificial intelligence
N
Netflix TechBlog - Medium
云风的 BLOG
云风的 BLOG
MyScale Blog
MyScale Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Blog — PlanetScale
Blog — PlanetScale

博客园 - Simle

OpenClaw 接入 Telegram 编程随想曲周刊(第82期) 编程随想曲周刊(第81期) Arduino自动安装ESP32开发包 Arduino手动安装ESP32开发包 Docker入门实践(六) 编程随想曲周刊(第80期) Docker入门实践(五) Docker入门实践(四) Docker入门实践(三) Docker入门实践(二) Docker入门实践(一) Nginx入门实践(六) Nginx入门实践(四) Nginx入门实践(三) Nginx入门实践(二) 编程随想曲周刊(第79期) 编程随想曲周刊(第78期) 编程随想曲周刊(第77期) Nginx入门实践(一)
Nginx入门实践(五)
Simle · 2024-09-12 · via 博客园 - Simle

环境

系统:Windows7
Nginx版本:1.26.2

负载均衡模式

  1. round-robin轮询模式。
http {
	upstream backend {
		server backend1.com:8081;
		server backend2.com:8082;
		server backend3.com:8000;
	}
    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass http://backend;
        }
    }
}
  1. least-connected最少连接模式:适用于请求花费时间较长的场景。
http {
	upstream backend {
	    least_conn;
		server backend1.com:8081;
		server backend2.com:8082;
		server backend3.com:8000;
	}
    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass http://backend;
        }
    }
}
  1. ip_hash:适用于需要保持会话的场景,确保每一次请求都发送到同一台服务器。
http {
	upstream backend {
	    ip_hash;
		server backend1.com:8081;
		server backend2.com:8082;
		server backend3.com:8000;
	}
    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass http://backend;
        }
    }
}

配置服务器权重

以round-robin为例

http {
	upstream backend {
		server backend1.com:8081 weight=3;
		server backend2.com:8082;
		server backend3.com:8000;
	}
    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass http://backend;
        }
    }
}

健康检查:Nginx会自动探测服务的存活状态

探测次数:max_fails=3 ,默认0
探测超时时间:fail_timeout=30s

http {
	upstream backend {
		server backend1.com:8081 weight=3;
		server backend2.com:8082 max_fails=3 fail_timeout=30s;
		server backend3.com:8000;
	}
}

参考链接

Using nginx as HTTP load balancer