nginx配置负载均衡一文解决

以下是使用Nginx部署Vue项目并配置负载均衡的详细步骤:


一、部署Vue项目到单个Nginx服务器

  1. 构建Vue项目

    arduino 复制代码
    npm run build

    生成静态文件在 dist 目录。

  2. 上传文件到服务器dist 目录上传至服务器,例如 /var/www/vue-app

  3. 安装Nginx

    sql 复制代码
    sudo apt update && sudo apt install nginx
  4. 配置Nginx站点

    • 创建配置文件 /etc/nginx/sites-available/vue-app

      bash 复制代码
      server {
          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;
          }
      }
    • 启用配置:

      bash 复制代码
      sudo 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)。

  1. 在负载均衡器上配置Upstream

    • 修改Nginx配置(如 /etc/nginx/nginx.conf 或新建文件):

      ini 复制代码
      http {
          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;
              }
          }
      }
  2. 应用配置并重启Nginx

    复制代码
    sudo nginx -t
    sudo systemctl restart nginx

三、验证负载均衡

  1. 访问负载均衡器IP/域名

    arduino 复制代码
    curl http://loadbalancer.example.com

    多次请求会分发到不同后端服务器。

  2. 查看Nginx日志

    • 负载均衡器日志:/var/log/nginx/access.log
    • 后端服务器日志:检查请求是否均衡分配。

四、可选优化

  1. 健康检查

    ini 复制代码
    upstream 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: 服务器标记为不可用的时间
  2. 启用HTTPS

    • 使用Let's Encrypt生成证书并配置SSL:

      ini 复制代码
      listen 443 ssl;
      ssl_certificate /etc/letsencrypt/live/your_domain.com/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/your_domain.com/privkey.pem;
  3. 静态文件缓存

    bash 复制代码
    location / {
        try_files $uri $uri/ /index.html;
        expires 30d;  # 客户端缓存静态资源
    }

注意事项

  • 确保所有后端服务器的Vue应用版本一致。
  • 若使用会话保持(如ip_hash),确保后端服务无状态。
  • 防火墙需放行负载均衡器和后端服务器的端口(如80/443)。

通过以上步骤,您已成功部署Vue项目并配置了Nginx负载均衡,提升了应用的可用性和性能。

相关推荐
zkmall7 小时前
ZKmall开源商城静态资源管理:Nginx 配置与优化
运维·nginx·开源
zuozewei21 小时前
干货 | 高性能 Nginx 优化配置总结
运维·nginx
YY_Ylx_XX1 天前
Nginx用途以及好处:
运维·nginx
wyk123_0461 天前
Windows 部署项目 apache + mod_wsgi,nginx + waitress
windows·nginx
奈何不吃鱼2 天前
【安装配置教程】在linux使用nginx部署vue项目
linux·vue.js·nginx
ak啊2 天前
Nginx 调试与排查指南
nginx
做测试的小薄2 天前
Nginx 命令大全:Linux 与 Windows 系统的全面解析
linux·自动化测试·windows·nginx·环境部署
黎明鱼儿3 天前
高可用架构:Keepalived、Nginx与Docker深度解析
nginx·docker·架构