Nginx反向代理和负载均衡

反向代理

如果proxy_pass没有使用URI,传送到后端服务器的请求URI一般客户端发起的原始URI(下文第二种情况)。

访问地址:http://localhost/proxy/abc.html

以下是几种常见的匹配情况:

  • 第一种:
location /proxy/ {
	proxy_pass http://127.0.0.1:8080/;
}

代理到:http://127.0.0.1:8080/abc.html

  • 第二种:
location /proxy/ {
	proxy_pass http://127.0.0.1:8080;
}

相对于第一种proxy_pass缺少/
代理到:http://127.0.0.1:8080/proxy/abc.html

  • 第三种:
location /proxy/ {
	proxy_pass http://127.0.0.1:8080/api/;
}

代理到:http://127.0.0.1:8080/api/abc.html

  • 第四种:
location /proxy/ {
	proxy_pass http://127.0.0.1:8080/api;
}

相对第三种少/
代理到:http://127.0.0.1:8080/apiabc.html

location /proxy {
	proxy_pass http://127.0.0.1:8080/api;
}

代理到:http://127.0.0.1:8080/api/abc.html

  • 第五种:
location /proxy {
	proxy_pass http://127.0.0.1:8080/;
}

代理到:http://127.0.0.1:8080//abc.html
注意此处有两个反斜杠//

location /proxy {
	proxy_pass http://127.0.0.1:8080;
}

代理到:http://127.0.0.1:8080/proxy/abc.html

负载均衡

在nginx.conf http模块下添加

# 轮询 默认策略--ABABAB...
upstream testgroup1 {
          server 172.17.0.3:8000;
          server 172.17.0.4:8000;
          server 172.17.0.5:8000;
    }

# 权重--ABBABBABB...
upstream testgroup2 {
          server 172.17.0.3:8000 weight=1;
          server 172.17.0.4:8000 weight=2;
    }
    
# 权重--AAA...->突然A挂了->BBB...
upstream testgroup3 {
          server 172.17.0.3:8000;
          server 172.17.0.4:8000 backup;
    }
 
# ip_hash-- nginx 会按访问ip的hash结果分配,让相同客户端ip请求相同的服务器
upstream testgroup4 {
          server 172.17.0.3:8000;
          server 172.17.0.4:8000;
          ip_hash;
    }

在server模块下添加反向代理

location /api/ {
          proxy_pass http://testgroup1/api/;
     }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值