nginx中upstream与server路径配置的关系案例
这里以配置 nacos集群 用nginx 代理 做简要说明
以下是配置文件部分
#定义参数upstream 后的 值nacos-cluster 对应了 proxy_pass 里的nacos-cluster 名字要相同才能绑定
#而这个 proxy_pass 的带不带 "/" 总结两个原则
#在proxy_pass中的代理url后加上/,代理转发的url中就不会带上location中匹配路径;
#在proxy_pass中的代理url后面没有/,代理转发的url中就会带上location中的匹配路径
#在这里的意思就是 location 中 proxy_pass 域名 http://nacos-cluster 会被解析成 upstream 中的这几个 主机地址
#同理 location 中 proxy_pass 域名 http://nacos-cluster/xxx/yyy 只要跟upstream绑定 对应他的主机地址
#案例1 例如 location 中 proxy_pass 域名 改为 http://nacos-cluster/xxx/yyy ,那么访问 server下的server_name 属性 加上匹配路径location 后面的值
也就是访问 localhost/nacos 的时候,其实 就是访问了 代理了主机其中之一的地址, 假如说代理了192.168.188.3:8845,那么实质就是访问了 192.168.188.3:8845/xxx/yyynacos
#案例2 例如 location 中 proxy_pass 域名是 http://nacos-cluster/ ,那么访问 server下的server_name 属性 加上匹配路径location 后面的值
也就是访问 localhost/nacos 的时候,其实 就是访问了 代理了主机其中之一的地址, 假如说代理了192.168.188.3:8847,那么实质就是访问了 192.168.188.3:8845/
#案例3 例如 location 中 proxy_pass 域名是 http://nacos-cluster ,那么访问 server下的server_name 属性 加上匹配路径location 后面的值
也就是访问 localhost/nacos 的时候,其实 就是访问了 代理了主机其中之一的地址, 假如说代理了192.168.188.3:8846,那么实质就是访问了 192.168.188.3:8845/nacos
upstream nacos-cluster {
server 192.168.188.3:8845;
server 192.168.188.3:8846;
server 192.168.188.3:8847;}
server {
listen 80;
server_name localhost;
location /nacos {
proxy_pass http://nacos-cluster;
}
}