linux

LNMP服务器负载均衡配置

小樊
44
2025-12-06 03:51:33
栏目: 云计算

架构与组件

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; }
}

部署与验证步骤

0
看了该问题的人还看了