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; //关键
}