我目前有以下配置:
+---------+ +---------+ +-----------+
| | | | | |
| client +--------->+ main-lb +--------->+ nginx01 |
| | | | | |
+---------+ +---------+ +-----------+
| |
| |
| |
v v
+----+----+ +----+----+
| | | |
| web01 | | web02 |
| | | |
+---------+ +---------+
它将请求从 nginx01 镜像到 web01 和 web02 Web 服务器(不是 nginx)。
这是我当前的 nginx01 配置:
location / {
mirror /mirror1;
proxy_pass http://web01;
}
location /mirror1 {
internal;
proxy_pass http://web02;
}
目前,web01 和 web02 都可以正常接收请求,但只有 web01 的内容会连同 200 状态代码一起返回给客户端。
问题是如果 web02 宕机,那么客户端将不知道。
我需要改变这种行为,以便如果 web01或者web02 状态代码 !=(不等于)200/301,然后将该状态代码返回给客户端,而不仅仅是来自 web01 的 200/301。
请注意,web01 和 web02 是两个完全不同的 Web 服务器(不是 nginx)。这里唯一“真正的” nginx 是 nginx01。
谢谢!