更新时间:2024-09-25 18:26:00
1 场景介绍
支持场景:客户可以通过 App 的方式将爱数的 Web应用(如AnyShare)嵌入到客户的系统(如OA)。当前产品能够提供自定义产品访问的URI前缀作为路由标识,提供给客户做路由分发配置。
该文档主要讲述如何进行配置URI前缀实现产品的访问,使用统一配置URI前缀功能前请仔细阅读。
2 资源准备
统一和配置URI前缀需要准备如下环境和资源:
- 一套AnyShare环境
- 一台外置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 操作示例
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 操作示例
4 已知缺陷
无。
5 注意事项
- 所有服务在正常Running状态下可以进行访问地址属性配置的查询与修改。
- 需外置nginx的配置与部署服务的访问地址属性配置全部修改完成,才可完成前缀访问。
- 服务器docker、kubelet、network、firewalld等其他基础服务stop状态下,不支持前缀访问
< 上一篇:
下一篇: >