服务转发配置

最后更新于:2019-09-29 15:10:19

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

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

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

  • 当部署神策分析集群版时,必须进行转发配置,以保证数据接入服务的性能和可靠性。
  • 当部署神策分析单机版时,如果希望修改接入数据的端口,或者开启 https,那么也可以使用转发配置来实现。

2. 如何进行转发配置

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

  • 数据接入服务。用于接收各个 SDK 发送过来的数据,通常情况下都需要允许公网访问(如果不使用任何客户端的 SDK 也可以禁止公网访问),且需要考虑流量和带宽的影响。该服务的默认端口为 8106。
  • 后台分析服务。用于进行数据分析、管理的后台界面,通常情况下可以只允许办公网访问,以便最大限度的保证系统的安全性。该服务的默认端口为 8107。

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

2.1 使用 Nginx 进行服务转发

注意事项:

2.1.1 数据接入服务

Nginx参考配置如下:

# 定义数据接入服务的 server
# 默认端口 8106。
upstream sensors_data_api {
  # 若是单机版,只需要留下一个 server; 若是集群版,需要把 ip 地址改成每个节点的内网地址
  server 10.0.0.1:8106; # 这里需要改: 只需把 10.0.0.1 改成对应的ip地址
  server 10.0.0.2:8106; # 这里需要改: 只需把 10.0.0.2 改成对应的ip地址
  server 10.0.0.3:8106; # 这里需要改: 只需把 10.0.0.3 改成对应的ip地址  
  # 必须使用 ip_hash 以保证数据接入顺序
  ip_hash;
  keepalive 100;
}

# 转发数据接入服务
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_pass http://sensors_data_api;
      proxy_ignore_client_abort on;
      proxy_http_version 1.1;
      proxy_set_header Connection "";
  }
}

2.1.2 后台分析服务

Nginx参考配置如下:

# 定义神策后台服务的 server
# 默认端口是 8107
upstream sensors_data_web {
  # 若是单机版,只需要留下一个 server ,若是集群版,需要把 ip 地址改成没个节点的内网地址
  server 10.0.0.1:8107; # 这里需要改: 只需把 10.0.0.1 改成对应的ip地址
  server 10.0.0.2:8107; # 这里需要改: 只需把 10.0.0.2 改成对应的ip地址
  server 10.0.0.3:8107; # 这里需要改: 只需把 10.0.0.3 改成对应的ip地址
  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;
    proxy_redirect http://sensors_data_web:8107 .;
    proxy_pass http://sensors_data_web;
    proxy_ignore_client_abort on;
  }
}

2.1.3 更新神策后台配置

2.2 使用神策服务的Nginx 进行服务转发

若为单机版部署,也可直接在神策分析的Nginx上配置服务转发。 注意:一般不建议采用此方案,可能会对性能有所影响,注意评估接入服务的负载情况。建议优先选用私有部署的Nginx服务做转发。

2.2.1 切换用户

登录部署神策分析机器,切换到 sa_cluster 用户;

su - sa_cluster

2.2.2 切换目录

切换到部署 Nginx 的目录:

cd /home/sa_cluster/sa/nginx

2.2.3 创建配置目录

创建自定义配置目录: Nginx 启动时会加载 conf.d 下的所有配置文件,文件内应该只包含 server 代码块;

mkdir -p /home/sa_cluster/sa/nginx/conf.d

2.2.4 数据接入服务

将相关的Nginx配置文件(*.conf)部署到神策服务环境中,具体目录为:/home/sa_cluster/sa/nginx/conf.d ;

Nginx参考配置如下:

# 定义数据接入服务的 server
# 默认端口 8106。
upstream sensors_data_api {
  server 10.0.10.1:8106; # 这里需要改: 只需把 10.0.10.1 改成对应的ip地址
  # 必须使用 ip_hash 以保证数据接入顺序
  ip_hash;
  keepalive 100;
}

# 转发数据接入服务
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_pass http://sensors_data_api;
      proxy_ignore_client_abort on;
      proxy_http_version 1.1;
      proxy_set_header Connection "";
  }
}

2.2.5 后台分析服务

将相关的Nginx配置文件(*.conf)部署到神策服务环境中,具体目录为:/home/sa_cluster/sa/nginx/conf.d ;

Nginx参考配置如下:

# 定义神策后台服务的 server
# 单机版的端口是 8107,且只有一台。集群版是 8107,多台。
upstream sensors_data_web {
  server 10.0.10.1:8107; # 这里需要改: 只需把 10.0.10.1 改成对应的ip地址
  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;
    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.6 检查Nginx配置

在 Nginx 目录下执行如下命令测试配置是否正确:

sudo sbin/nginx -t

如果出现如下提示说明配置正确:

nginx: the configuration file ./conf/nginx.conf syntax is ok
nginx: configuration file ./conf/nginx.conf test is successful

如果失败需要修改配置再重新测试配置;

2.2.7 加载Nginx配置

配置测试并检查无误后,在 Nginx 目录下执行如下命令使 Nginx 重新加载配置:

sudo sbin/nginx -s reload

2.2.8 更新神策后台配置

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

2.3.1 数据接入服务

注意事项:

  • 需要开启会话保持。
  • 如果需要开启 HTTPS,选择 HTTPS 即可。

2.3.2 后台分析服务

注意事项:

  • 1.11 之前版本只能选择 TCP,如果需要开启 HTTPS,需要在神策部署服务器所在的 Nginx 上进行配置。
  • 1.11 及之后版本选择对应的 HTTP / HTTPS 协议即可。
  • 需要开启会话保持。
  • 由于存在部分长耗时请求,超时时间建议设成 1800 秒或者更高。
  • 集群版默认端口 8107,单机版默认端口 8107。

2.3.3 更新神策后台配置

2.4 使用 UCloud ULB 进行服务转发

2.4.1 数据接入服务

注意事项:

  • 使用源地址的负载均衡算法,保证数据接入的可靠性。
  • 需要开启会话保持。
  • 如果需要开启 HTTPS,选择 HTTPS 即可。

2.4.2 后台分析服务

注意事项:

  • 需要开启会话保持。

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

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

2.4.3 更新神策后台配置

2.5 使用 AWS ELB 进行服务转发

2.5.1 数据接入服务

注意事项:

  • 需要开启粘性会话(Sticky Sessions)。
  • 如果需要开启 HTTPS,选择 HTTPS 即可。

2.5.2 后台分析服务

注意事项:

  • 由于 Classic 负载均衡器指南不支持 WebSocket,需要使用应用程序负载均衡器(ALB),或者使用 TCP 协议。
  • 需要开启粘性会话(Sticky Sessions)。
  • 由于存在部分长耗时请求,空闲连接超时(Idle timeout)建议设成 1800 秒或者更高。

2.5.3 更新神策后台配置

3. 更新神策后台配置

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

  • 埋点代码生成功能
  • 渠道管理功能
假设进行转发配置之后的地址是(以下地址仅为示例,请以自己环境实际的地址为准): * 数据接入地址:http://saasdemo.cloud.sensorsdata.cn:8106/ (不含任何二级路径或参数)。 * 后台分析地址:http://saasdemo.cloud.sensorsdata.cn/ (不含任何二级路径或参数)。 那么更新相关配置的操作方式如下:
# 登录到任意一台神策服务节点并切换到神策管理账号
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 的区别:

# 登录到任意一台神策服务节点并切换到神策管理账号
su - sa_cluster
# 检查 HTTP 数据接入服务地址
monitor_tools get_config -t global -n data_sink_url
# 检查 HTTP 后台分析服务地址
monitor_tools get_config -t global -n web_url
# 检查 HTTPS 数据接入服务地址,如有
monitor_tools get_config -t global -n secure_data_sink_url
# 检查 HTTPS 后台分析服务地址,如有
monitor_tools get_config -t global -n secure_web_url
# 登录到任意一台神策服务节点并切换到神策管理账号
su - sa_cluster
# 检查 HTTP 数据接入服务地址
spadmin config get global -n data_sink_url
# 检查 HTTP 后台分析服务地址
spadmin config get global -n web_url
# 检查 HTTPS 数据接入服务地址,如有
spadmin config get global -n secure_data_sink_url
# 检查 HTTPS 后台分析服务地址,如有
spadmin config get global -n secure_web_url

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

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

5. 使用 HTTPS 的数据接入

默认情况下,数据接入 API 使用的是 HTTP 协议,若希望进一步提高数据传输层的安全性,或是需要在 HTTPS 站点上部署神策分析 JavaScript SDK 正常发送数据,可以参考本文档配置 HTTPS 接入。

5.1 Cloud 版使用 HTTPS 的数据接入方案

神策分析 Cloud 版已经提供 HTTPS 数据接入地址。 例如 HTTP 数据接入地址为:

http://test.cloud.sensorsdata.cn:8106/sa?token=xxx

它对应的 HTTPS 数据接入地址使用 4006 端口:

https://test.cloud.sensorsdata.cn:4006/sa?token=xxx

即 scheme 由 HTTP 改为 HTTPS,端口由 8106 改为 4006。 或使用数据接收专用域名:

https://test.datasink.sensorsdata.cn/sa?token=xxx

使用 datasink 域名可以不显式指定端口号,即 443 为数据接收服务端口。

5.2 私有部署版使用 HTTPS 的数据接入方案

注意事项:

  • 使用 HTTPS 加密传输需要提供 SSL 证书,神策不提供任何 SSL 证书。该证书可以通过多种渠道获取,若使用自签证书请确保客户端信任该证书;
  • 使用 HTTPS 请关注证书的过期时间,若证书过期可能会导致数据无法发送成功;

5.2.1 在进行服务转发时启用 HTTPS

强烈建议采用这种方式; 具体请参考:2.1 使用私有部署的 Nginx 进行服务转发

5.2.2 直接在神策服务的 Nginx 上配置 HTTPS

(一般不建议采用此方案) 对于单机版,这里也提供直接在神策分析的 Nginx 上配置 HTTPS 的方案,该方案需要将 SSL 私钥放置于我们的机器上,且加密算法的选择受限于使用的 Nginx 二进制编译时的 OpenSSL 版本。请注意:

  • HTTPS 的 TLS/SSL 层需要消耗额外 CPU、带宽资源,一般只用于测试或者小流量的应用场景;

在神策分析的 Nginx 上配置 HTTPS 可以参考以下步骤:

  1. 登录部署神策分析机器,切换到 sa_cluster 用户;

    su - sa_cluster
    
  2. 切换到部署 Nginx 的目录:

    cd /home/sa_cluster/sa/nginx
    
  3. 创建证书目录和自定义配置目录:

    mkdir -p /home/sa_cluster/sa/nginx/cert
    mkdir -p /home/sa_cluster/sa/nginx/conf.d
    

    Nginx 启动时会加载 conf.d 下的所有配置文件,文件内应该只包含 server 代码块;

  4. 将证书公钥和私钥放置到 cert 目录下;

  5. 在 conf.d 中创建 https.conf 内容如下:

    server {
     listen       4006 ssl;                      # 端口号,可自定义
     server_name  cloud_test.sensorsdata.cn;     # 域名
    
     access_log off;
    
     ssl on;                                     # 开启 ssl
     # 配置 ssl 证书信任链
     ssl_certificate /home/sa_cluster/sa/nginx/cert/fullchain.pem;
     # 配置 ssl 私钥
     ssl_certificate_key /home/sa_cluster/sa/nginx/cert/privkey.pem;
    
     # 其他 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://127.0.0.1:8106;
         # 集群版
         # proxy_pass http://127.0.0.1:8106;
     }
    }
    

其他 SSL 配置可以参考: https://mozilla.github.io/server-side-tls/ssl-config-generator/

  1. 在 Nginx 目录下执行如下命令测试配置是否正确:

    sudo sbin/nginx -t
    

    如果出现如下提示说明配置正确:

    nginx: the configuration file ./conf/nginx.conf syntax is ok
    nginx: configuration file ./conf/nginx.conf test is successful
    

    如果失败需要修改配置再重新测试配置;

  2. 配置测试并检查无误后,在 Nginx 目录下执行如下命令使 Nginx 重新加载配置:

    sudo sbin/nginx -s reload