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

时间:2025-02-16 16:22:21
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 ; } location @router{ rewrite ^.*$/ last; } error_page 500 502 503 504 /; location = / { 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; } }