0


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/;
     }

本文转载自: https://blog.csdn.net/u012706554/article/details/128304328
版权归原作者 bing03246 所有, 如有侵权,请联系我们删除。

“Nginx反向代理和负载均衡”的评论:

还没有评论