更新时间:2024-09-25 18:26:00

1 场景介绍

支持场景:客户可以通过 App 的方式将爱数的 Web应用(如AnyShare)嵌入到客户的系统(如OA)。当前产品能够提供自定义产品访问的URI前缀作为路由标识,提供给客户做路由分发配置。
该文档主要讲述如何进行配置URI前缀实现产品的访问,使用统一配置URI前缀功能前请仔细阅读。

2 资源准备

统一和配置URI前缀需要准备如下环境和资源:

  1. 一套AnyShare环境
  2. 一台外置nginx环境(注:外部nginx必须非AS节点)

3 配置产品访问的URI前缀

3.1 配置外置Nginx负载均衡器

路由分发层,也就是用户自配置的nginx负载均衡器层,需要将路由前缀注入进cookie和请求头, 并对包含前缀的api做路由 rewrite 操作,注入前缀的键名为:X-Forwarded-Prefix。例如:当前缀为/demo时,需要处理的nginx规则如下:

server {
      listen       443 ssl;
       
      # 反向代理的地址或域名,这里10.4.71.109为示例,请根据实际环境填写
      server_name  10.4.71.109;
  
      # 反向代理的证书,请根据实际环境进行证书配置
      ssl_certificate      /usr/local/ssl/10.4.71.109-tls.crt;
      ssl_certificate_key  /usr/local/ssl/10.4.71.109-tls.key;
 
      ssl_session_cache    shared:SSL:1m;
      ssl_session_timeout  5m;
 
      ssl_ciphers  HIGH:!aNULL:!MD5;
      ssl_prefer_server_ciphers  on;
 
      # 解决413错误
      client_max_body_size 2048M;
 
      # 客户配置的附加前缀
      # 可以自定义,如/aishu、/test、/xxx等,这里用/demo,不影响方案
      # rewrite的URI要保持一致
      location /demo {
            # 注入前缀"/demo"到请求头
            proxy_set_header X-Forwarded-Prefix /demo;
             proxy_http_version 1.1;
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection "upgrade";
            # 注入前缀"/demo"到cookie
            add_header Set-Cookie "X-Forwarded-Prefix=/demo;Path=/";
            
            # 代理至AnyShare,如这里的AnyShare地址为"10.2.65.36"
             if ($request_uri ~* "^/demo/?$"){
rewrite ^.*$ /demo/anyshare permanent;
           }
if ($request_uri ~* ^/demo/(.*)$){
proxy_pass https://10.2.65.36/$1;
           }
 
            # 解决301/302重定向到代理后的地址
             # 例如这里的AnyShare地址为"10.2.65.36,nginx地址为10.4.71.109
            proxy_redirect https://10.2.65.36/ https://10.4.71.109/demo/;
            proxy_redirect https://10.2.65.36:443/ https://10.4.71.109:443/demo/;
      }
       
}

操作说明

操作步骤 使用命令 (示例)
进入Nginx配置文件目录 cd /usr/local/nginx/conf/
修改配置信息 vi nginx.conf

3.1.1 操作示例

找到指定文件.png

编辑nginx配置文件1.png

编辑nginx配置文件2.png

3.2 部署工具的产品访问URI前缀配置和管理

部署工具提供访问地址的配置,包含前缀的信息配置和修改。该修改目前仅支持手动调用接口修改。访问对象的访问方式:通过 deploy-service 的API /api/deploy-manager/v1/access-addr/app 获取访问对象。
以下操作需在安装完成部署工作台后操作。

3.2.1 操作说明

操作步骤 使用命令
1. 查看deploy-service服务的内部访问地址与端口号 kubectl get svc -A
2. 查看访问地址属性配置 curl http://deploy-service:9703/api/deploy-manager/v1/access-addr/app
3. 修改访问地址属性配置 curl -X PUT -d ‘{“host”: “nginxIP”,”port”: 443,”type”: “external”,”scheme”: “https”,”path”: “/test”}’ http://deploy-service: 9703/api/deploy-manager/v1/access-addr/app

3.2.2 操作示例

登录界面.png

查询登录地址和端口.png

查看登录相关信息.png

使用更改后地址登录.png

4 已知缺陷

无。

5 注意事项

  1. 所有服务在正常Running状态下可以进行访问地址属性配置的查询与修改。
  2. 需外置nginx的配置与部署服务的访问地址属性配置全部修改完成,才可完成前缀访问。
  3. 服务器docker、kubelet、network、firewalld等其他基础服务stop状态下,不支持前缀访问