nginx配置多组upstream实现微服务负载均衡

本文档展示了如何配置Nginx以实现负载均衡,将请求分发到多个后台服务器,并针对/api/user、/api/log和/api/login接口设置不同的上游服务器。同时,前端项目需要将baseURL更改为Nginx服务器的IP地址,以通过代理访问后端服务。当遇到页面刷新404错误时,可以通过调整try_files指令来解决。
摘要由CSDN通过智能技术生成

1.nginx.conf配置如下

    upstream loadbalance_user {                              //可写入多个后台地址,实现负载均衡
        server  192.168.1.189:5007   weight=1;
        server  192.168.1.164:5007   weight=1;
    }
    upstream loadbalance_log {
        server  192.168.1.189:5007   weight=1;
        server  192.168.1.164:5007   weight=1;
    }
    upstream loadbalance_login {
        server  192.168.1.189:5002   weight=1;
        server  192.168.1.164:5002   weight=1;
    }
   
    server {
        listen 80;                              
        server_name 192.168.1.164;              //主机ip
        root /root/html/dist;                   //前端静态资源地址

        location / {
            autoindex on;
            try_files $uri $uri/ @router;
            index index.html index.htm;
        }

       location @router{
           rewrite ^.*$/index.html last;
       }
       error_page 500 502 503 504 /50x.html;
       location = /50x.html {
           root html;
       }
       location ^~/api/user {                                  //通过不同路由区分转发地址
           add_header Access-Control-Allow-Origin *;           //跨域相关
           add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
           add_header Access-Control-Allow-Headers 'Cache-Control,Content-Type,Authorization,id_token';

           if ($request_method = 'OPTIONS') {
                return 204;
           }

           proxy_pass http://loadbalance_user;
           #rewrite ^/api/(.*) /$1 break;                    //若后端资源未写api,此处需要将api置空
       }
       location ^~/api/log {
           add_header Access-Control-Allow-Origin *;
           add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
           add_header Access-Control-Allow-Headers 'Cache-Control,Content-Type,Authorization,id_token';

           if ($request_method = 'OPTIONS') {
                return 204;
           }

           proxy_pass http://loadbalance_log;
           #rewrite ^/api/(.*) /$1 break;
       }
       location ^~/api/login {
           add_header Access-Control-Allow-Origin *;
           add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
           add_header Access-Control-Allow-Headers 'Cache-Control,Content-Type,Authorization,id_token';

           if ($request_method = 'OPTIONS') {
                return 204;
           }

           proxy_pass http://loadbalance_login;
           #rewrite ^/api/(.*) /$1 break;
       }
       
    }

2.前端项目中baseURL需要改为nginx.conf配置文件中的代理地址,如此处应填写http://192.168.1.164

3.若如上配置在页面刷新时,出现404错误,则修改为以下配置

location / {
  index index.html index.htm;
  try_files $uri $uri/ /index.html;      //关键
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值