Nginx 可以通过多种方式代理多个后端服务器,以下是几种常见的方法:
server {
listen 80;
server_name domain1.com;
location / {
proxy_pass http://server1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 80;
server_name domain2.com;
location / {
proxy_pass http://server2:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 80;
server_name example.com;
location /app1/ {
proxy_pass http://server1:8080/;
proxy_set_header Host $host;
}
location /app2/ {
proxy_pass http://server2:8080/;
proxy_set_header Host $host;
}
}
upstream backend {
server server1:8080;
server server2:8080;
# 可以添加更多服务器
# server server3:8080;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
upstream backend {
server server1:8080 weight=3; # 3/5 的请求
server server2:8080 weight=2; # 2/5 的请求
}
upstream backend {
# 最少连接数策略
least_conn;
server server1:8080;
server server2:8080;
server server3:8080;
}
upstream backend {
server server1:8080 max_fails=3 fail_timeout=30s;
server server2:8080 max_fails=3 fail_timeout=30s;
}
nginx -t
nginx -s reload
需要更具体的配置或有其他问题,请告诉我您的具体需求。