神策分析致力于帮助客户搭建开放的数据平台,便于客户更深入的利用数据。本节文档涉及较多技术细节,适用于对相关功能有经验的用户参考。如果对文档内容有疑惑,请咨询神策值班同学获取一对一的协助。
什么时候需要使用 HTTPS 的数据接入
- 默认情况下,数据接入 API 使用的是 HTTP 协议
- 若有以下需求,均可以参考本文档配置 HTTPS 数据接入:
1)希望进一步提高数据传输层的安全性;
2)需要在 HTTPS 站点上部署神策分析 JavaScript SDK 正常发送数据。
神策建议:在需要通过公网的情况下都使用 HTTPS 协议。
如何配置 HTTPS 的数据接入
不同版本的用户可根据实际情况选择对应的配置方式,如有其它特殊情况请联系神策技术支持。
2.2 私有部署版客户:
1)在云厂商的负载均衡或者硬件负载设备启用 HTTPS(推荐采用此方式)
云版使用 HTTPS 的数据接入方案
神策分析云版默认已经配置了 HTTPS 数据接入,可直接获取对应的 HTTPS 数据接入地址使用。
获取 HTTPS 数据接入地址
在神策分析页面获取 HTTPS 数据接入地址,需要使用 管理员 账户:
云版数据接入地址格式
协议 | 数据接入地址 (域名以实际为准) |
---|---|
HTTP | http://域名:8106/sa?token=xxx |
HTTPS (两种类型的地址均可用,选择一种使用即可) | https://域名+datasink./sa?token=xxx |
示例:
HTTP 数据接入地址为:
http://test.cloud.sensorsdata.cn:8106/sa?token=xxx
它对应的 HTTPS 数据接入地址为:
https://test.datasink.sensorsdata.cn/sa?token=xxx
使用数据接收专用 datasink 域名,可以不显式指定端口号,即 443 为数据接收服务端口。
私有部署版使用 HTTPS 的数据接入方案
在云厂商的负载均衡或者硬件负载设备启用 HTTPS
强烈建议采用此方式。
用此方案配置 HTTPS 的注意事项
- 常见的负载设备均提供 HTTPS 接入功能,可根据实际情况选择不同云厂商的 LB 或硬件负载设备来开启 HTTPS;
- 使用 HTTPS 加密传输需要提供 SSL 证书,神策不提供任何 SSL 证书。该证书可以通过多种渠道获取,若使用自签证书请确保客户端信任该证书;
- 使用 HTTPS 请关注证书的过期时间,若证书过期可能会导致数据无法发送成功;
- 如果是第一次使用云厂商的负载均衡,建议查看各厂商负载均衡配置官方文档,必要时可以给相应厂商提工单询问;
- 如果依然无法完成转发配置请联系神策技术支持。
云厂商负载均衡配置官方文档参考 :
更新神策后台配置
验证配置是否正确
在独立部署的其它开源应用上配置 HTTPS
从机器成本和人力成本考虑,如非必要,神策不建议采用此方案。
用此方案配置 HTTPS 的注意事项
- 需要额外一台或多台(确保高可用)机器来部署开源负载均衡应用,不能部署在神策的机器上。
- 请自行规划负载均衡应用所在机器的配置、高可用和监控方案。
- 使用 HTTPS 加密传输需要提供 SSL 证书,神策不提供任何 SSL 证书。该证书可以通过多种渠道获取,若使用自签证书请确保客户端信任该证书;
- 使用 HTTPS 请关注证书的过期时间,若证书过期可能会导致数据无法发送成功;
- 下面的小节将提供基于 Nginx 开启 SSL 的 server 段配置,其它配置段请按实际情况自行配置。若使用其他开源应用可以此作为参考配置。
数据接入服务配置 HTTPS
确认 Nginx 版本
不同版本的 Nginx 开启 SSL 的方式会有差异,需要先确认当前部署的 Nginx 版本。
确认方式可参考:
进入 Nginx 的部署目录下,执行:sbin/nginx -V,查看输出的 "nginx version: "字段,就是对应的 Nginx 版本。
Nginx server 段参考配置如下:
Nginx 版本 < 1.15.0
Nginx 版本 >= 1.15.0
后台分析服务配置 HTTPS
确认 Nginx 版本
不同版本的 Nginx 开启 SSL 的方式会有差异,需要先确认当前部署的 Nginx 版本。
确认方式可参考:
进入 Nginx 的部署目录下,执行:sbin/nginx -V,查看输出的 "nginx version: "字段,就是对应的 Nginx 版本。
Nginx server 段参考配置如下:
Nginx 版本 < 1.15.0
Nginx 版本 >= 1.15.0
更新神策后台配置
验证配置是否正确
更新神策后台配置
在配置 HTTPS 完毕之后,神策后台需要知道对应的 HTTPS 地址,所以还需要在神策服务中配置 HTTPS URL,否则会影响部分功能的使用,包括:
- 埋点代码生成功能
- 渠道管理功能
假设进行转发配置之后的地址是(以下地址仅为示例,请以自己环境实际的地址为准):
那么更新相关配置的操作方式如下:
注意:以下所有地址均为示例地址,需要根据您真实的数据接收地址进行配置
sp 2.1 版本
# 登录到任意一台神策服务节点并切换到神策管理账号
su - sa_cluster
# 更新 HTTPS 数据接入服务地址
edgeadmin data_sink set -n secure_data_sink_url -v 'https://10.129.31.36:8106'
# 更新 HTTPS 后台分析服务地址
sbpadmin business_config -a set -p sa -n web -k web_url -v https://web.cloud.sensorsdata.cn/
# 重启服务
aradmin restart -m web -p sa
检查相关配置的操作方式如下:
# 登录到任意一台神策服务节点并切换到神策管理账号
su - sa_cluster
# 检查 HTTPS 数据接入服务地址
edgeadmin data_sink get -n secure_data_sink_url
# 检查 HTTPS 后台分析服务地址
sbpadmin business_config -a get -p sa -n web -k web_url
sp 2.0 版本
# 登录到任意一台神策服务节点并切换到神策管理账号
su - sa_cluster
# 更新 HTTPS 数据接入服务地址
spadmin config set global -n secure_data_sink_url -v "https://datasink.cloud.sensorsdata.cn/"
# 更新 HTTPS 后台分析服务地址
spadmin config set global -n secure_web_url -v "https://web.cloud.sensorsdata.cn/"
# 重启服务
spadmin restart -m web -p sa
检查相关配置的操作方式如下:
# 登录到任意一台神策服务节点并切换到神策管理账号
su - sa_cluster
# 检查 HTTPS 数据接入服务地址
spadmin config get global -n secure_data_sink_url
# 检查 HTTPS 后台分析服务地址
spadmin config get global -n secure_web_url
# 登录到任意一台神策服务节点并切换到神策管理账号
su - sa_cluster
# 更新 HTTPS 数据接入服务地址
edgeadmin data_sink set -n secure_data_sink_url -v 'https://10.129.31.36:8106'
# 更新 HTTPS 后台分析服务地址
sbpadmin business_config -a set -p sa -n web -k web_url -v https://web.cloud.sensorsdata.cn/
# 重启服务
aradmin restart -m web -p sa
检查相关配置的操作方式如下:
# 登录到任意一台神策服务节点并切换到神策管理账号
su - sa_cluster
# 检查 HTTPS 数据接入服务地址
edgeadmin data_sink get -n secure_data_sink_url
# 检查 HTTPS 后台分析服务地址
sbpadmin business_config -a get -p sa -n web -k web_url
# 登录到任意一台神策服务节点并切换到神策管理账号
su - sa_cluster
# 更新 HTTPS 数据接入服务地址
spadmin config set global -n secure_data_sink_url -v "https://datasink.cloud.sensorsdata.cn/"
# 更新 HTTPS 后台分析服务地址
spadmin config set global -n secure_web_url -v "https://web.cloud.sensorsdata.cn/"
# 重启服务
spadmin restart -m web -p sa
检查相关配置的操作方式如下:
# 登录到任意一台神策服务节点并切换到神策管理账号
su - sa_cluster
# 检查 HTTPS 数据接入服务地址
spadmin config get global -n secure_data_sink_url
# 检查 HTTPS 后台分析服务地址
spadmin config get global -n secure_web_url
如何验证配置是否正确
- 获取 HTTPS 数据接入地址(转发到 8106 端口的 HTTPS 地址)加 /debug (例如:
https://datasink.cloud.sensorsdata.cn/debug),直接在浏览器中访问,如返回“Sensors Analytics is ready to receive your data!” ,证明该地址配置正确。
- 在浏览器中直接访问 HTTPS 后台分析地址(转发到 8107 端口的 HTTPS 地址),如果能正常返回神策登录的界面,证明该地址配置正确。