在 Debian 上用 Nginx 做 LNMP 负载均衡
一 架构与准备
二 部署步骤
sudo apt update && sudo apt install nginxsudo nano /etc/nginx/conf.d/load_balancer.confhttp {
upstream backend {
least_conn;
server 10.0.0.11:80 max_fails=3 fail_timeout=30s;
server 10.0.0.12:80 max_fails=3 fail_timeout=30s;
server 10.0.0.13:80 backup; # 备用节点
}
server {
listen 80;
server_name www.example.com;
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;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
sudo nginx -t && sudo systemctl reload nginxsudo apt install nginx php-fpm/etc/php/7.4/fpm/pool.d/www.conf
listen = /run/php/php7.4-fpm.socklisten.owner = www-data; listen.group = www-dataserver {
listen 80;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
sudo systemctl enable --now nginx php7.4-fpm三 策略与健康检查要点
max_fails 与 fail_timeout 实现被动健康检查(如:max_fails=3 fail_timeout=30s)。四 安全与高可用
五 验证与运维
sudo nginx -tcurl -I http://www.example.com;多节点后端可在响应头加入标识(如 add_header X-Backend $server_addr;)观察分发情况。/var/log/nginx/access.log、/var/log/php7.4-fpm.log(或对应版本)。