同域名下挂载不同前端项目--示例

前提条件:

  • 目前有个项目已经挂到域名下(以下简称主应用),现在要将别的两个项目也挂载到这个域名下(以下简称子应用)
  • 所有项目都有自己的nginx

开始配置:

1、约定项目前缀(假设两个项目)

/ehr-workBench     /ehr-admin

2、在主应用的nginx - http 下添加代理服务(该地址为子应用上线后的IP地址)

upstream workBench { 
    server 10.152.17.47:60508;
    server 10.152.17.48:60508;
    server 10.152.17.49:60508; 
}
upstream admin { 
    server 10.152.17.47:60509;
    server 10.152.17.48:60509;
    server 10.152.17.49:60509; 
}

3、在主应用的nginx配置文件中添加代理配置

location /ehr-admin { #/ehr-admin为约定的项目前缀
    proxy_pass http://admin/;  #结尾的"/"必须加  admin为上面upstream定义的名字             
}

4、在主应用中设置nginx转发携带Headers

underscores_in_headers on;

5、添加子应用的api请求代理配置(子应用的api代理要写在主应用中)

location /ehrApi { #此处的ehrApi与前端src/common/http中的前缀保持一致
    add_header Access-Control-Allow-Credentials true;
    proxy_pass http://demo/http/ehr; #此处为主应用接口代理地址,子应用也用
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;            
}

6、修改子应用配置文件

  • 在根目录的config文件下找到index.js,修改build下assetsPublicPath
assetsPublicPath: '/ehr-workBench' // /ehr-workBench 为约定的项目前缀
  • 在路由文件中添加以下代码
base:'/ehr-workBench',
  • 修改nginx配置文件---静态资源位置(这里是子应用的nginx,代理自身的静态资源,api在主应用中添加)
location / {
    root /usr/share/nginx/html;
    index index.html;                
}
  • 若项目中涉及到前端进行的模板下载,该模板需要放置到主项目的static文件夹中,页面代码如
<a href="/static/pfxz.pdf" download="评分细则.pdf" style="color: #409eff;font-size:14px;margin-left:10px;">下载模板</a>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容