架构与组件
Nginx 负载均衡配置
http {
upstream backend {
least_conn; # 最少连接
server 10.0.1.11:80 weight=3 max_fails=2 fail_timeout=10s;
server 10.0.1.12:80 weight=2 max_fails=2 fail_timeout=10s;
server 10.0.1.13:80 backup; # 备用节点
keepalive 32; # 与后端的长连接数
}
server {
listen 80;
server_name www.example.com;
location / {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 可选:缓冲与超时
proxy_buffering on;
proxy_buffers 16 4k;
proxy_buffer_size 2k;
proxy_connect_timeout 5s;
proxy_send_timeout 15s;
proxy_read_timeout 15s;
}
# 健康检查页面(可选)
location /health {
access_log off;
return 200 "OK";
add_header Content-Type text/plain;
}
}
}
后端 PHP-FPM 与静态资源
# /etc/nginx/conf.d/app.conf
server {
listen 80;
server_name app1.example.com;
root /var/www/html;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 路径按系统与版本调整
fastcgi_read_timeout 60s;
}
location ~ /\.ht {
deny all;
}
}
[www]
listen = /var/run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.max_requests = 500
数据库与高可用
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication { auth_type PASS; auth_pass 42; }
virtual_ipaddress { 192.168.1.100/24; }
}
部署与验证步骤