以下是使用Nginx部署Vue项目并配置负载均衡的详细步骤:
一、部署Vue项目到单个Nginx服务器
-
构建Vue项目
arduinonpm run build
生成静态文件在
dist
目录。 -
上传文件到服务器 将
dist
目录上传至服务器,例如/var/www/vue-app
。 -
安装Nginx
sqlsudo apt update && sudo apt install nginx
-
配置Nginx站点
-
创建配置文件
/etc/nginx/sites-available/vue-app
:bashserver { listen 80; server_name your_domain.com; # 替换为域名或IP root /var/www/vue-app/dist; index index.html; location / { try_files $uri $uri/ /index.html; } # 可选:代理后端API请求 location /api { proxy_pass http://backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
-
启用配置:
bashsudo ln -s /etc/nginx/sites-available/vue-app /etc/nginx/sites-enabled/ sudo nginx -t # 检查配置 sudo systemctl reload nginx
-
二、配置Nginx负载均衡
假设有2台后端服务器运行Vue应用(IP: 192.168.1.101 和 192.168.1.102)。
-
在负载均衡器上配置Upstream
-
修改Nginx配置(如
/etc/nginx/nginx.conf
或新建文件):inihttp { upstream vue_servers { # 定义后端服务器列表和负载策略 server 192.168.1.101:80 weight=3; # 权重3,处理更多请求 server 192.168.1.102:80; server 127.0.0.1:8000 backup; # 备份服务器,主服务器宕机时启用 # 可选策略:least_conn(最少连接)、ip_hash(会话保持) # least_conn; # ip_hash; } server { listen 80; server_name loadbalancer.example.com; location / { proxy_pass http://vue_servers; 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
sudo nginx -t sudo systemctl restart nginx
三、验证负载均衡
-
访问负载均衡器IP/域名
arduinocurl http://loadbalancer.example.com
多次请求会分发到不同后端服务器。
-
查看Nginx日志
- 负载均衡器日志:
/var/log/nginx/access.log
- 后端服务器日志:检查请求是否均衡分配。
- 负载均衡器日志:
四、可选优化
-
健康检查
iniupstream vue_servers { server 192.168.1.101 max_fails=3 fail_timeout=30s; server 192.168.1.102 max_fails=3 fail_timeout=30s; }
max_fails
: 允许失败次数fail_timeout
: 服务器标记为不可用的时间
-
启用HTTPS
-
使用Let's Encrypt生成证书并配置SSL:
inilisten 443 ssl; ssl_certificate /etc/letsencrypt/live/your_domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your_domain.com/privkey.pem;
-
-
静态文件缓存
bashlocation / { try_files $uri $uri/ /index.html; expires 30d; # 客户端缓存静态资源 }
注意事项
- 确保所有后端服务器的Vue应用版本一致。
- 若使用会话保持(如
ip_hash
),确保后端服务无状态。 - 防火墙需放行负载均衡器和后端服务器的端口(如80/443)。
通过以上步骤,您已成功部署Vue项目并配置了Nginx负载均衡,提升了应用的可用性和性能。