nginx配置多组upstream实现微服务负载均衡
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;
}
}