反向代理
如果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/;
}
版权归原作者 bing03246 所有, 如有侵权,请联系我们删除。