搬瓦工多台VPS管理与负载分配


随着业务增长,一台VPS往往无法满足需求。无论是为了提升可用性、分散风险,还是提高并发能力,多台VPS协同工作是常见的架构方案。本文介绍搬瓦工多台VPS的管理策略、批量运维工具和负载均衡配置。

一、多台VPS的典型架构

常见的多VPS架构方案:

二、搬瓦工多台VPS购买策略

搬瓦工允许一个账户下购买多台VPS,也支持注册多个账户。建议:

购买时使用优惠码 NODESEEK2026 可享 6.77% 折扣。全部方案请查看搬瓦工方案汇总

三、SSH配置快速管理多台VPS

通过SSH config文件配置所有VPS的连接信息:

# 编辑 ~/.ssh/config
Host bwg-web1
    HostName 104.194.76.100
    Port 28967
    User root
    IdentityFile ~/.ssh/id_ed25519

Host bwg-web2
    HostName 104.194.76.101
    Port 29156
    User root
    IdentityFile ~/.ssh/id_ed25519

Host bwg-db
    HostName 185.232.65.50
    Port 27843
    User root
    IdentityFile ~/.ssh/id_ed25519

# 连接示例
# ssh bwg-web1
# ssh bwg-db

四、Ansible批量管理

Ansible是最流行的服务器批量管理工具,可以同时在多台VPS上执行命令和部署应用。

安装Ansible(在本地或管理服务器上):

# macOS
brew install ansible

# Ubuntu/Debian
apt install ansible -y

# pip安装
pip install ansible

配置主机清单 /etc/ansible/hosts:

[webservers]
web1 ansible_host=104.194.76.100 ansible_port=28967
web2 ansible_host=104.194.76.101 ansible_port=29156

[dbservers]
db1 ansible_host=185.232.65.50 ansible_port=27843

[all:vars]
ansible_user=root
ansible_ssh_private_key_file=~/.ssh/id_ed25519

常用Ansible命令:

# 测试连通性
ansible all -m ping

# 在所有服务器上执行命令
ansible all -a "uptime"

# 批量更新系统
ansible all -a "apt update && apt upgrade -y"

# 只在web服务器组执行
ansible webservers -a "nginx -t"

# 批量传输文件
ansible webservers -m copy -a "src=./nginx.conf dest=/etc/nginx/nginx.conf"

Ansible Playbook示例 - 批量部署Nginx:

# deploy-nginx.yml
---
- hosts: webservers
  tasks:
    - name: 安装Nginx
      apt:
        name: nginx
        state: latest
        update_cache: yes

    - name: 复制配置文件
      copy:
        src: ./nginx.conf
        dest: /etc/nginx/nginx.conf
      notify: restart nginx

    - name: 确保Nginx运行
      service:
        name: nginx
        state: started
        enabled: yes

  handlers:
    - name: restart nginx
      service:
        name: nginx
        state: restarted

# 执行playbook
# ansible-playbook deploy-nginx.yml

五、Nginx负载均衡配置

使用Nginx作为反向代理实现负载均衡,将流量分配到多台后端服务器:

# /etc/nginx/nginx.conf (负载均衡服务器上)
upstream backend {
    # 轮询模式(默认)
    server 104.194.76.100:80 weight=3;
    server 104.194.76.101:80 weight=2;

    # 健康检查:如果后端3次失败,暂停30秒
    server 104.194.76.100:80 max_fails=3 fail_timeout=30s;
    server 104.194.76.101:80 max_fails=3 fail_timeout=30s;
}

server {
    listen 80;
    server_name yourdomain.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_connect_timeout 5s;
        proxy_read_timeout 60s;
    }
}

Nginx支持的负载均衡策略:

六、数据同步方案

多台VPS之间的数据同步:

方案一:rsync实时同步

# 安装inotify-tools监控文件变化
apt install inotify-tools -y

# 文件变化时自动同步
inotifywait -mrq --timefmt '%Y%m%d %H:%M' --format '%T %w%f %e' \
  -e modify,create,delete,move /var/www | while read line; do
    rsync -avz --delete /var/www/ root@web2:/var/www/
done

方案二:MySQL主从复制

# 主服务器 my.cnf
[mysqld]
server-id = 1
log_bin = mysql-bin
binlog_do_db = your_database

# 从服务器 my.cnf
[mysqld]
server-id = 2
relay-log = relay-log

# 从服务器配置复制
CHANGE MASTER TO
  MASTER_HOST='主服务器IP',
  MASTER_USER='repl_user',
  MASTER_PASSWORD='密码',
  MASTER_LOG_FILE='mysql-bin.000001',
  MASTER_LOG_POS=0;
START SLAVE;

七、监控与告警

多台VPS建议配置统一监控:

# 一键安装Netdata监控
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
# 安装后访问 http://IP:19999 查看监控面板
Tip: 更多教程请查看新手教程,全部方案请查看搬瓦工方案汇总
关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工 BandwagonHost 的优惠信息、使用教程和方案对比,方便中文用户选购和使用。

新手必读
搬瓦工优惠码

当前最大折扣优惠码:

NODESEEK2026(优惠 6.77%)

在购买方案时填入优惠码即可自动抵扣。详见 优惠码使用教程