通过Nginx负载均衡技术搭建多服务器集群,可以提高网站的可用性、扩展性和容错能力。当某台服务器出现故障时,Nginx会自动将流量分配到其他正常运行的服务器上,确保网站持续可用。
在Nginx配置文件中(http或server块中)添加upstream模块:
http {
upstream backend {
server backend1.example.com weight=5;
server backend2.example.com;
server backend3.example.com max_fails=3 fail_timeout=30s;
server backup1.example.com backup;
}
server {
listen 80;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
Nginx支持多种负载均衡算法:
upstream backend {
# IP哈希算法
ip_hash;
# 或者最少连接算法
least_conn;
server backend1.example.com;
server backend2.example.com;
}
Nginx Plus版本支持主动健康检查,开源版可通过第三方模块或被动检查:
upstream backend {
server backend1.example.com max_fails=3 fail_timeout=30s;
server backend2.example.com max_fails=3 fail_timeout=30s;
}
对于需要会话保持的应用:
upstream backend {
ip_hash;
server backend1.example.com;
server backend2.example.com;
}
或者使用sticky cookie:
upstream backend {
sticky cookie srv_id expires=1h domain=.example.com path=/;
server backend1.example.com;
server backend2.example.com;
}
为防止Nginx成为单点故障,可配置Nginx主从集群:
监控指标:
日志分析:
自动化运维:
http {
gzip on;
gzip_types text/plain text/css application/json application/javascript;
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
server {
location / {
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
}
}
}
通过以上配置,您的网站将获得更高的可用性和更好的性能表现。根据实际业务需求,可以进一步调整和优化配置参数。