双中心 分别部署一套系统
需要一个统一门户来访问双系统里的内容
统一门户可以部署在一个独立的NGINX,涉及到登录后token同步,点击bj图标访问bj服务器,点击sh图标访问sh服务器,默认访问bj服务器
不同中心应用访问,通过NGINX代理地址添加bj/sh
添加登录成功后的首页;
将应用展示出来,并跳转;
打包前端portal应用;
将打包后的portal放到NGINX中;
独立的NGINX配置示例如下:
#bj
upstream bj {
server 10.9.160.26 weight=5;
}
#sh
upstream sh {
server 10.9.160.29 weight=5;
}
server {
listen 8091;
server_name localhost;
#charset koi8-r;
# access_log logs/host.access.log main;
# 页面地址是a.com,但是要用b.com的cookie需要
proxy_set_header Cookie $http_cookie;
# iframe 跨域问题
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_hide_header X-Frame-Options;
add_header X-Frame-Options ALLOWALL;
# add_header X-Frame-Options "ALLOW-FROM http://localhost:8080";
add_header Access-Control-Allow-Origin *; # 必须要有
add_header Access-Control-Allow-Headers *; # 必须要有
proxy_cookie_domain bj localhost; # 重要 对应upstream bj #注意别写错位置了 proxy_cookie_path / /;
location / {
# root html/build;
# index index.html;
proxy_pass http://localhost:8081;//本地开发环境运行在8081端口
}
#通用
location ~ (/a1|/b2|/itsm|/alert) {
set $URL $http_referer;
if ($URL ~ "sh"){
proxy_pass http://sh;
}
if ($URL ~ "bj"){
proxy_pass http://bj;
}
if ($URL !~ (bj|sh)){
proxy_pass http://bj; # 必须是这个IP
}
}
#北京
location ^~/bj/ {
proxy_pass http://bj/;
}
location ^~/bj_itsm/ {
rewrite /bj_itsm /itsm last;
proxy_pass http://bj/;
}
location ^~/bj_alert/ {
rewrite /bj_alert /bj/alert last; # last 是重要的
proxy_pass http://bj/;
}
#上海
location ^~/sh/ {
proxy_pass http://sh/;
}
location ^~/sh_alert/ {
rewrite /sh_alert /sh/alert last;
proxy_pass http://sh/;
}
location ^~/portal-bridge/ {
proxy_pass http://10.9.160.28;//token同步接口
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
网友评论