连接数,通常对后端服务器硬件不一致的情况进行配置
upstream linuxe_backend {
server 192.168.1.110 down; #该节点不可用
server 192.168.1.120 backup; #其他节点挂了后该节点自动上线
server 192.168.1.130 max_failes=1 fail_timeout=10s weight-5;
server backend1.linuxe.cn 8080 weight=3
}
3.2 默认的调度算法
- 轮询(默认);
- 加权轮询;
- IP HASH;
3.3 实例
加权轮询:
http {
upstream myserver{
server 192.168.1.100 weight=3; #指定后端服务器地址,权重为3
server 192.168.1.110;
}
server {
listen 80;
server name www.myserver.com;
location / {
proxy_pass http://myserver;
}
}
IP HASH:
upstream myserver {
ip_hash; #采用IP HASH算法
server 192.168.1.100;
server 192.168.1.110;
server 192.168.1.120;
}
URL HASH:
upstream myserver {
hash $request_uri;
server 192.168.1.100;
server 192.168.1.110;
server 192.168.1.120;
}
连接数轮询:
http{
upstream sampleapp {
least_conn;
server <<dns entry or IP Address(optional with port)>>;
server <<another dns entry or IP Address(optional with port)>>;
}
....
server{
listen 80;
...
location / {
proxy_pass http://sampleapp;
}
}
4. Nginx location 和 proxy_pass路径配置详解
见文档 Nginx location 和 proxy_pass路径配置详解
proxy_pass
,如果和location
都加了/
,lcoation
里的前缀会被去掉,参考文档 proxy_pass详解;
- 当在后面的
upstram_name
后面出现了 /
,相当于是绝对根路径,则 nginx
不会把 location
中匹配的路径部分代理走;
- 如果没有
/
,则会把匹配的路径部分也给代理走;
参考文章
[1] nginx documentation
[2] 前端开发者必备的 nginx 知识
[3] 百万并发下 Nginx 的优化之道
[4] agentzh 的 Nginx 教程
[5] OpenResty 最佳实践
[6] Nginx 核心知识 100 讲
[7] 极客时间:nginx 核心知识 100 讲配置文件与代码分享
[8] OpenResty 从入门到实战
[9] Nginx 基础知识从小白到入门
[10] 【Nginx配置】使用upstream和proxy_pass实现反向代理与负载均衡
[11] Nginx location 和 proxy_pass路径配置详解