http {
# 定义多个后端服务的 upstream
upstream backend_service1 {
server 192.168.1.101:80;
server 192.168.1.102:80;
}
upstream backend_service2 {
server 192.168.2.101:80;
server 192.168.2.102:80;
}
server {
listen 80;
server_name example.com;
# 服务 1 的配置
location /service1/ {
proxy_pass http://backend_service1;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504 http_404;
proxy_intercept_errors on;
error_page 404 = @fallback_service1;
}
location @fallback_service1 {
proxy_pass http://192.168.1.103:80; # 服务 1 的备用后端
}
# 服务 2 的配置
location /service2/ {
proxy_pass http://backend_service2;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504 http_404;
proxy_intercept_errors on;
error_page 404 = @fallback_service2;
}
location @fallback_service2 {
proxy_pass http://192.168.2.103:80; # 服务 2 的备用后端
}
}
}