![]() |
1
dier 326 天前
你这三个 proxy 是一样的吗?
如果是就用 upstream 如果不就是用多个 location 或 if 来判断 |
2
liuzh365 OP 类似于
location / { // 某种逻辑判断第一个 proxy_pass http://192.168.1.1 // 不行就第二个 proxy_pass http://10.10.1.1 // 不行继续往下 。。。 } 目前路径已经确定了不方便改动,然后暂时也没有加参数的打算 |
![]() |
4
cpstar 326 天前
如果 uri 或者参数场景都不能实现。那你靠什么实现 if-else 呢?
|
![]() |
5
cpstar 326 天前
如果仅是 2#所述的根据服务器状态来执行,那还是得用 upstream,这就是负载均衡的概念了,而不是仅仅为反代
|
![]() |
7
dier 326 天前
我尝试理解一下你的意思
访问 a.d.com/html 跟 a.d.com/api 这个 html 跟 api 对应分别对应在 proxy1 和 proxy2 proxy3 上(三者提供服务不相同)? 如果是这样,要么用多 location 要么就是 if 来判断 |
![]() |
8
cpstar 326 天前
|
9
lscho 326 天前
你说的这个不就是负载均衡吗。。。upstream 可以判断服务器是否正常。
|
![]() |
10
greenskinmonster 326 天前
用 try_files 应该可以
i.imgur.com/McIFG23.png |
![]() |
11
cnoder 326 天前
openresty 是可以
|
12
zw1027 326 天前
实现不了就上 lua 自己写逻辑
|
![]() |
13
maxbon 326 天前
用变量判断试试,不确定可不可行,比如
if ( xxx ) { set $a 192.168.1.1; } if ( yyy ) { set $a 192.168.1.2; } proxy_pass http://$a; |
![]() |
14
ryd994 326 天前
翻译翻译,什么叫“某种逻辑”?什么叫“匹配”?
|
15
dorothyREN 325 天前
写三个一样的 location proxypass 不同就行了吧,这个是按顺序匹配的
|