场景

不同的子系统(不同ip或端口)想通过同一域名端口 实现转发请求。
例如
a系统 a.com:8097/index.html
b系统 b.com:8098/index.html
统一由域名转发weny7.com
访问 weny7.com/a/ ==> a.com:8097/a/
访问 weny7.com/b/ ==> b.com:8098/b/

配置

haproxy

acl is_ds-frame-web url_beg  /a/
acl is_ds-comprehensive-web url_beg  /b/
#页面调用的接口加上转发规则
acl is_ds-authorization-api url_beg  /ds-authorization-api/
acl is_ds-system-manager-api url_beg  /ds-system-manager-api/

use_backend ds-frame-web_back if is_ds-frame-web
use_backend ds-comprehensive-web_back if is_ds-comprehensive-web
use_backend ds-authorization-api_back if is_ds-authorization-api
use_backend ds-system-manager-api_back if is_ds-system-manager-api

#页面转发
backend ds-frame-web_back
   balance source
server  a.com a.com:8097  check

#页面转发
backend ds-comprehensive-web_back
   balance source
server  b.com b.com:8098  check

#接口转发
backend ds-authorization-api_back
   balance source 
reqrep ^([^\ ]*\ /)ds-authorization-api[/]?(.*)     \1\2
#http-request replace-path /web1(.*) \1  #2.1版本之后用http-request 来去除前缀
server  161.0.240.234 161.0.240.234:8090  check

#接口转发
backend ds-system-manager-api_back
   balance source
reqrep ^([^\ ]*\ /)ds-system-manager-api[/]?(.*)     \1\2  
#http-request replace-path /web1(.*) \1
server  161.0.240.234 161.0.240.234:8082  check

nginx

 server {
            listen 8097;
            server_name localhost;

            location / {
                root html;
                index  index.html index.htm;
                try_files $uri $uri/ /ds-analysis-web/index.html; #针对angualr  两层目录
            }

      }


    server {
            listen 8098;
            server_name localhost;

            location / {
                root html;
                index  index.html index.htm;
                try_files $uri $uri/ /index.html;
            }

    }


站点放置目录

image.png

vue打包配置

image.png

angular配置

打包指令加上 base-href = /b/

Q.E.D.


生命在于折腾