我是标题
  • 介绍
  • 产品使用指南
    • 新手入门
      • 神策分析是什么
      • 神策分析能做什么
      • 神策分析怎么解决问题
      • 神策分析的数据来源
    • 功能介绍
      • 基本概念
        • 行为分析常用名词
        • 神策分析相关名词
        • 基础指标配置说明
        • 属性筛选条件说明
      • 分析模块
        • 事件分析
        • Session 分析
        • 漏斗分析
        • 留存分析
        • 分布分析
        • 归因分析
        • 用户路径分析
        • 网页热力分析
        • APP 点击分析
        • 间隔分析
        • 用户属性分析
        • 搜索用户
        • 用户分群
          • 用户分群(1.14 版本)
          • 用户分群
          • 用户分群(1.13 之前版本)
        • 用户行为序列
        • 书签及数据概览
          • 数据概览(1.11 之前版本)
          • 概览分组
          • 渠道对比组件使用说明
          • 预置概览
        • 自定义查询
      • 辅助功能
        • 事件分类
        • 查询抽样
        • 权限管理
          • 角色权限与账号(1.14 版本)
        • 预警管理
        • 元数据管理
        • 可视化全埋点
        • 维度字典
        • 正则表达式
        • 推荐分享
        • 小版本升级
        • 掌上神策分析
  • 技术指南
    • 数据采集
      • 数据模型
      • 数据格式
      • 调试模式
        • 调试模式动态配置
      • 数据校验
      • 导入实时查看
        • 导入实时查看(新版本)
        • 导入实时查看(老版本)
      • 埋点管理
      • 多项目
      • 如何准确的标识用户
      • 新增用户及首日首次标记
    • 快速接入指南
      • 接入前准备(全员阅读)
      • 如何准确的标识用户 (全员阅读)
      • 事件设计 (需求方阅读)
      • SDK 采集数据 (开发必读)
        • JavaScript 快速使用
        • 微信小程序快速使用
        • Android 快速使用
        • iOS 快速使用
        • Java 快速使用
      • 数据校验(测试必读)
    • 客户端 SDK
      • C++ SDK
      • 微信小程序 SDK
        • 微信小程序 SDK 历史版
        • 微信小程序 SDK 标准版
        • 微信小程序 SDK 插件版
        • 微信小程序 SDK 自定义全埋点版
      • 支付宝小程序 SDK
      • 百度小程序 SDK
      • JavaScript SDK
        • 常见问题
        • 全埋点(AutoTrack)
        • 点击图(HeatMap)
        • 单页面
        • 关闭页面发数据
      • Android SDK
        • 常见问题
        • 全埋点(AutoTrack)
        • 点击图(HeatMap)
      • iOS SDK
        • 常见问题
        • 全埋点(AutoTrack)
        • 点击图(HeatMap)
      • 打通 App 与 H5
      • App 第三方框架
        • React Native(Android & iOS)
        • Flutter(Android & iOS)
        • Weex(iOS)
        • Weex(Android)
        • 第三方 H5 页面嵌入 js(iOS)
        • 第三方 H5 页面嵌入 js(Android)
      • APICloud SDK
    • 服务端 SDK
      • C SDK
        • C SDK Demo
      • CSharp SDK
      • Java SDK
        • Java SDK Demo
      • Python SDK
      • PHP SDK
      • Ruby SDK
      • Golang SDK
      • Node SDK
    • 公共属性
    • 渠道追踪
      • App 渠道追踪
      • Web 渠道追踪
      • 小程序渠道追踪
      • 渠道对接
      • 渠道链接管理
    • 数据导入
      • BatchImporter
      • LogAgent
        • LogAgent 场景使用示例
      • FormatImporter
      • HdfsImporter
      • 数据导入常见问题
    • 数据导出
      • 查询 API
      • 订阅实时数据
      • 使用 JDBC 进行数据访问
      • 数据迁移
    • 辅助工具
      • 数据清理工具使用说明
      • 多项目管理工具使用说明
      • 元数据创建工具使用说明
      • 环境检测工具使用说明
    • 高级功能
      • 数据接入 API
      • App 消息推送
      • 虚拟属性和维度表
      • 数据预处理模块
      • 服务转发配置
      • 使用 HTTPS 的数据接入
      • API
        • 查询 API
        • 功能 API
          • 分群 API(1.12 及之前版本)
          • 分群 API(1.13 版本)
          • 分群 API(1.14 版本)
          • 埋点统计 API(1.11 及之前版本)
          • 埋点统计 API(1.12 及之后版本)
      • 第三方登录
      • 数据归档
  • 最佳实践
    • 功能应用示例
      • 事件分析
      • 漏斗分析
      • 留存分析
      • 分布分析
      • 间隔分析
      • 用户分群
      • 自定义查询
      • 用户行为序列
    • 复杂分析场景
      • 定位商品销量变化原因
  • 常见问题
  • 产品更新日志
Powered by GitBook
On this page
  • 1. 什么时候需要进行转发配置
  • 2. 如何进行转发配置
  • 2.1 使用 Nginx 进行服务转发
  • 2.2 使用阿里云 SLB 进行服务转发
  • 2.3 使用 UCloud ULB 进行服务转发
  • 2.4 使用 AWS ELB 进行服务转发
  • 3. 更新神策后台配置
  • 3. 如何验证转发配置是否正确

Was this helpful?

  1. 技术指南
  2. 高级功能

服务转发配置

Previous数据预处理模块Next使用 HTTPS 的数据接入

Last updated 6 years ago

Was this helpful?

神策分析致力于帮助客户搭建开放的数据平台,便于客户更深入的利用数据。本节文档涉及较多技术细节,适用于对相关功能有经验的用户参考。如果对文档内容有疑惑,请咨询您的数据咨询顾问获取一对一的协助。

当神策分析处于私有部署的模式时,用户出于安全、负载均衡等方面的考虑,通常会需要把神策分析的对外访问地址进行二次转发,以符合运维方面的要求。

1. 什么时候需要进行转发配置

  • 当部署神策分析集群版时,必须进行转发配置,以保证数据接入服务的性能和可靠性。

  • 当部署神策分析单机版时,如果希望修改接入数据的端口,或者开启 https,那么也可以使用转发配置来实现。

2. 如何进行转发配置

神策分析对外的 Web 服务分为两部分:

  • 数据接入服务。用于接收各个 SDK 发送过来的数据,通常情况下都需要允许公网访问(如果不使用任何客户端的 SDK 也可以禁止公网访问),且需要考虑流量和带宽的影响。该服务的默认端口为 8106。

  • 后台分析服务。用于进行数据分析、管理的后台界面,通常情况下可以只允许办公网访问,以便最大限度的保证系统的安全性。该服务的默认端口为 8107。

下面分别介绍一下使用 Nginx、阿里云 SLB、UCloud ULB、AWS ELB 等几种不同的情况下的参考配置,如果有其它特殊情况请联系神策技术支持。

2.1 使用 Nginx 进行服务转发

注意事项:

  • 开启 HTTPS 需要额外配置证书,且会对性能有明显影响,注意评估接入服务的负载情况。

  • 其他 SSL 配置可以参考:

2.1.1 数据接入服务

# 定义数据接入服务的 server
# 默认端口 8106。
upstream sensors_data_api {
  server 10.0.10.1:8106;
  server 10.0.10.2:8106;
  server 10.0.10.3:8106;
  # 必须使用 ip_hash 以保证数据接入顺序
  ip_hash;
  # 可选,连接数请根据负载情况进行调整
  keepalive 100;
}

# 转发数据接入服务
server {
  # 转发之后的端口号,可自定义
  listen 8106;
  # 域名,根据实际情况填写
  server_name xxx.yyy.zzz;
  access_log off;

  # 以下配置如果开启 ssl 则需要
  # ssl on;                                     # 开启 ssl
  # ssl_certificate /etc/ssl/fullchain.pem;     # 配置 ssl 证书信任链
  # ssl_certificate_key /etc/ssl/privkey.pem;   # 配置 ssl 私钥
  # 其他 ssl 参数可以参考 https://mozilla.github.io/server-side-tls/ssl-config-generator/ ,例如:
  # ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  # ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
  # ssl_prefer_server_ciphers on;
  # ssl_session_timeout 5m;
  # ssl_session_cache shared:SSL:50m;
  # 以上 ssl 配置可视情况添加、修改

  location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_pass http://sensors_data_api;
      proxy_ignore_client_abort on;
      # 以下两行只有开启 keepalive 才需要设置
      proxy_http_version 1.1;
      proxy_set_header Connection "";
  }
}

2.1.2 后台分析服务

# 定义神策后台服务的 server
# 单机版的端口是 8107,且只有一台。集群版是 8107,多台。
upstream sensors_data_web {
  server 10.0.10.1:8107;
  server 10.0.10.2:8107;
  server 10.0.10.3:8107;
  ip_hash;
}

# 转发神策后台界面
server {
  # 端口号,可自定义
  listen 80;
  # 域名,根据实际情况填写
  server_name  xxx.yyy.zzz;
  access_log off;

  # 以下配置如果开启 ssl 则需要
  # ssl on;                                     # 开启 ssl
  # ssl_certificate /etc/ssl/fullchain.pem;     # 配置 ssl 证书信任链
  # ssl_certificate_key /etc/ssl/privkey.pem;   # 配置 ssl 私钥
  # 其他 ssl 参数可以参考 https://mozilla.github.io/server-side-tls/ssl-config-generator/ ,例如:
  # ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  # ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
  # ssl_prefer_server_ciphers on;
  # ssl_session_timeout 5m;
  # ssl_session_cache shared:SSL:50m;
  # 以上 ssl 配置可视情况添加、修改

  location /  {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_read_timeout 1800s;
    # 如果不指定 server_name,这里需要替换为 IP,端口号与 upstream sensors_data_web 端口号一致
    proxy_redirect http://sensors_data_web:8107 .;
    proxy_pass http://sensors_data_web;
    proxy_ignore_client_abort on;
  }

  location /api/ws {
    proxy_pass http://sensors_data_web/api/ws;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

2.2 使用阿里云 SLB 进行服务转发

2.2.1 数据接入服务

注意事项:

  • 需要开启会话保持。

  • 如果需要开启 HTTPS,选择 HTTPS 即可。

2.2.2 后台分析服务

注意事项:

  • 1.11 之前版本只能选择 TCP,如果需要开启 HTTPS,需要在神策部署服务器所在的 Nginx 上进行配置。

  • 1.11 及之后版本选择对应的 HTTP / HTTPS 协议即可。

  • 需要开启会话保持。

  • 由于存在部分长耗时请求,超时时间建议设成 1800 秒或者更高。

  • 集群版默认端口 8107,单机版默认端口 8107。

2.3 使用 UCloud ULB 进行服务转发

2.3.1 数据接入服务

注意事项:

  • 使用源地址的负载均衡算法,保证数据接入的可靠性。

  • 需要开启会话保持。

  • 如果需要开启 HTTPS,选择 HTTPS 即可。

2.3.2 后台分析服务

注意事项:

  • 需要开启会话保持。

  • 由于存在部分长耗时请求,超时时间建议设成 1800 秒或者更高。

  • 如果需要开启 HTTPS,选择 HTTPS 即可。

2.4 使用 AWS ELB 进行服务转发

2.4.1 数据接入服务

注意事项:

  • 需要开启粘性会话(Sticky Sessions)。

  • 如果需要开启 HTTPS,选择 HTTPS 即可。

2.4.2 后台分析服务

注意事项:

  • 由于 Classic 负载均衡器指南不支持 WebSocket,需要使用应用程序负载均衡器(ALB),或者使用 TCP 协议。

  • 需要开启粘性会话(Sticky Sessions)。

  • 由于存在部分长耗时请求,空闲连接超时(Idle timeout)建议设成 1800 秒或者更高。

3. 更新神策后台配置

在进行服务转发配置之后,神策后台需要知道转发之后的地址,否则会影响部分功能的使用,包括:

  • 可视化埋点配置功能

  • 埋点代码生成功能

  • 渠道管理功能

假设进行转发配置之后的地址是:

那么更新相关配置的操作方式如下:

# 登录到任意一台神策服务节点并切换到神策管理账号
su - sa_cluster
# 更新 HTTP 数据接入服务地址
monitor_tools set_config -t global -n data_sink_url -v "http://saasdemo.cloud.sensorsdata.cn:8106/"
# 更新 HTTP 后台分析服务地址
monitor_tools set_config -t global -n web_url -v "http://saasdemo.cloud.sensorsdata.cn/"
# 更新 HTTPS 数据接入服务地址,如有
monitor_tools set_config -t global -n secure_data_sink_url -v "https://saasdemo.cloud.sensorsdata.cn:4006/"
# 更新 HTTPS 后台分析服务地址,如有
monitor_tools set_config -t global -n secure_web_url -v "https://saasdemo.cloud.sensorsdata.cn/"
# 重启服务
sa_admin restart -m web
# 登录到任意一台神策服务节点并切换到神策管理账号
su - sa_cluster
# 更新 HTTP 数据接入服务地址
spadmin config set global -n data_sink_url -v "http://saasdemo.cloud.sensorsdata.cn:8106/"
# 更新 HTTP 后台分析服务地址
spadmin config set global -n web_url -v "http://saasdemo.cloud.sensorsdata.cn/"
# 更新 HTTPS 数据接入服务地址,如有
spadmin config set global -n secure_data_sink_url -v "https://saasdemo.cloud.sensorsdata.cn:4006/"
# 更新 HTTPS 后台分析服务地址,如有
spadmin config set global -n secure_web_url -v "https://saasdemo.cloud.sensorsdata.cn/"
# 重启服务
spadmin restart -m web -p sa

检查相关配置的操作方式如下,注意 HTTP 和 HTTPS 的区别:

3. 如何验证转发配置是否正确

获取数据接收地址后,将地址中的“sa“替换为”debug,放入浏览器地址栏回车,如返回值为”Sensors Analytics is ready to receive your data!“则说明配置正确。

2.1.3

2.2.3

2.3.3

2.4.3

数据接入地址: (不含任何二级路径或参数)。

后台分析地址: (不含任何二级路径或参数)。

https://mozilla.github.io/server-side-tls/ssl-config-generator/
更新神策后台配置
更新神策后台配置
更新神策后台配置
更新神策后台配置
http://saasdemo.cloud.sensorsdata.cn:8106/
http://saasdemo.cloud.sensorsdata.cn/