server {
listen 80;
server_name 域名/ip;
location / { #项目1
root /home/work/dist;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /admin { #项目2
alias /home/work/dist2/;
index index.html index.htm;
try_files $uri $uri/ @router;
}
location @router {
rewrite ^.*$ /admin/index.html last;
}
# 后端
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080/;
}
# 后端
location /dev-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080/;
}
# 图片
location /img {
alias /home/work/temp_img/;
autoindex on;
}
注_前端需修改2处配置:
1. vue.config.js配置改为publicPath: process.env.NODE_ENV === "production" ? "/admin/" : "/",
2. src/router/index.js中改为
export default new Router({
mode: 'history', // 去掉url中的#
scrollBehavior: () => ({ y: 0 }),
base:'/admin/',
routes: constantRoutes
})
}