专有云datav代理踩坑

简介: 记录了datav专有云版本下,转发代理的实现

专有云datav代理踩坑

问题描述

datav开发完成之后,发布是通过在datav页面点击发布后获得发布链接,

image.png

一般情况下都是通过直接访问发布链接的方式进行页面访问,但是在一些特定的场景下会需要将这个地址进行代理后再进行访问,项目上碰到的场景是这样的

  1. datav版本为专有云datav版本,部署在内网服务器上,并且没有进行互联网透出
  2. 部分页面需要通过互联网方式进行访问

解决过程

默认情况下datav的访问链路为

image.png

想要开通公网访问的话,最直接的方式就是配置一个映射代理,链路如下:

image.png

这个映射配置比较简单,很快我们就配置完成了,但是在随之后的验证中发现了一个致命的问题导致页面无法正常访问:

  1. 互联网映射域名和内网的DataV服务的域名不一致
  2. DataV服务的域名是通过配置的方式硬编码在了配置文件里,没有根据当前实际访问的代理域名地址对对应的资源文件进行替换或者使用相对路径进行访问

以上两点直接导致的后果是:DataV服务没有办法被代理!

问题到这里似乎无解了,除非是互联网映射的域名保持和内网访问的域名一致,这个申请下来又是需要不少的时间,在与DataV研发团队的沟通中,我们摸索出了另外一条路:

image.png

在这里的nginx,不仅仅是转发的功能而已,还用到了它的插件sub_filter,简而言之,就是在转发的时候查找和替换对应的文本,这个插件是需要单独编译安装的,安装完成后,对nginx进行配置,核心点在于配置需要替换的文本

          proxy_set_header Accept-Encoding "";
          sub_filter '待替换的文本' '替换后的文本';
          sub_filter_types  css/html;
          sub_filter_once off;

同时这里也需要注意一个坑,当接收请求需要压缩的时候 Accept-Encoding配置为gzip时,sub_filter替换会失效,所以在这里增加了一个配置proxy_set_header Accept-Encoding "";  声明不进行压缩。

至此,页面已经能够通过代理的方式进行访问。

后续

在发布的datav页面开启token校验的时候,此时会涉及到页面的Cookie的设置,因为我们上面是通过nginx进行了一次代理,就需要增加nginx的配置proxy_cookie_domain 代理前的域名 代理后的域名; 来实现前后端cookie域名转换,保证顺利传递。

image.png

相关实践学习
基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
阿里云实时数仓实战 - 用户行为数仓搭建
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3 )前置知识要求:熟练掌握 SQL 语法熟悉 Linux 命令,对 Hadoop 大数据体系有一定的了解   课程大纲 第一章 了解数据仓库概念 初步了解数据仓库是干什么的 第二章 按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章 数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章 采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章 用户行为数据仓库 严格按照企业的标准开发 第六章 搭建业务数仓理论基础和对表的分类同步 第七章 业务数仓的搭建  业务行为数仓效果图  
相关文章
|
存储 机器学习/深度学习 人工智能
机器学习 | NumPy超详细教程
机器学习 | NumPy超详细教程
517 0
|
监控 网络协议 安全
华为配置防火墙直连路由器出口实验
华为配置防火墙直连路由器出口实验
761 6
|
算法 数据挖掘 Python
Scipy 高级教程——稀疏矩阵
Scipy 高级教程——稀疏矩阵【1月更文挑战第10篇】
456 0
|
内存技术
除了智能照明系统,PWM 还可以应用在哪些领域
脉冲宽度调制(PWM)技术不仅适用于智能照明系统,还广泛应用于电机控制、电源管理、音频处理和通信系统等领域,以实现高效能的信号和功率控制。
881 11
|
自然语言处理 搜索推荐 机器人
云上数字客服:重塑客户服务体验的智能化转型
技术成熟度:目前云上数字客服技术仍在不断发展和完善中,技术成熟度有待提高。 数据安全与隐私保护:随着客户数据的不断增加,如何确保数据的安全性和隐私性成为亟待解决的问题。 人机交互体验:虽然智能客服机器人已经取得了很大进展,但在某些复杂场景下仍难以完全替代人工客服,需要不断优化人机交互体验。 五、未来展望 随着技术的不断进步和市场环境的不断变化,云上数字客服将迎来更加广阔的发展前景。未来,云上数字客服将更加注重技术的创新和应用场景的拓展,不断提升服务质量和效率;同时加强数据安全和隐私保护,确保客户信息的安全性;此外还将积极探索与其他智能系统的融合应用,如智能营销、智能供应链等,为企业提供更全面的
984 7
|
敏捷开发 运维 监控
DevOps 在敏捷开发中的应用
【8月更文第30天】随着软件开发行业对快速迭代和持续交付的需求不断增加,敏捷开发方法论已经成为标准实践。DevOps 作为一种文化理念和技术实践的结合,强调开发与运维团队之间的紧密协作,以提高软件产品的质量和交付速度。本文将探讨 DevOps 如何支持敏捷开发流程,并通过具体的代码示例来展示其在迭代发布和反馈循环中的应用。
587 0
|
存储 Linux 网络安全
在Linux中,如何使用rsync进行增量备份?
在Linux中,如何使用rsync进行增量备份?
|
程序员
时序预测 | MATLAB实现基于KNN K近邻的时间序列预测-递归预测未来(多指标评价)
时序预测 | MATLAB实现基于KNN K近邻的时间序列预测-递归预测未来(多指标评价)
|
网络协议 网络架构 Windows
解析NDP报文格式
【7月更文挑战第8天】邻居发现协议(Neighbor Discovery Protocol,NDP)是IPv6协议体系中最重要的基础协议之一,很多IPv6功能都依赖NDP来实现。
|
负载均衡 Java API
SpringCloud Alibaba详解
服务治理 服务治理就是进行服务的自动化管理,其核心是服务的自动注册与发现。 服务注册:服务实例将自身服务信息注册到注册中心。 服务发现:服务实例通过注册中心,获取到注册到其中的服务实例的信息,通过这些信息去请求它们提供的服务。 服务剔除:服务注册中心将出问题的服务自动剔除到可用列表之外,使其不会被调用到。
487 0