0

我们有带有入口控制器的 k8s-cluster(nginx 版本:nginx/1.17.8,入口:rke2-ingress-nginx:1.36.301) - 4 个副本(每个工作人员一个)

为了提高性能并能够重用多个副本之间的会话,我尝试激活 ssl_session_cache 和票证。

ingress-configmap 具有以下数据块:


  ssl-session-cache-size: 100m

  ssl-session-tickets: "true"

  ssl-session-timeout: 1440m

  ssl-protocols: "TLSv1.2"

  ssl-session-ticket-key: "RESULT OF openssl rand 80 | openssl enc -A -base64"

当我将副本数减少到 1 时,我得到了正确的握手,并且我可以在没有握手的情况下在进一步的请求中重用票证。

当我将副本数增加到> 1,并在第二个(第三个,第四个......)请求(循环)中发送会话票证时,我每次都会从服务器获得一张新票证,包括。充分握手。所以会话恢复不起作用。

Configmap 自动更新正在工作,每个副本具有相同的 nginx.conf 并且所有副本具有相同的 /etc/nginx/tickets.key

Ingress-controller-pod 日志在更新 configmap 时没有问题:

I0929 13:56:50.165135 8 controller.go:137] 检测到配置更改,需要重新加载后端。

I0929 13:56:50.267572 8 controller.go:153] 后端成功重新加载。

更新 configmap 后重新启动所有 ingress-pods 也无济于事。

nginx.conf 中 configmap 的结果

        ssl_protocols TLSv1.2;

        ssl_early_data off;

        # turn on session caching to drastically improve performance

        ssl_session_cache builtin:1000 shared:SSL:100m;
        ssl_session_timeout 1440m;

        # allow configuring ssl session tickets
        ssl_session_tickets on;

        ssl_session_ticket_key /etc/nginx/tickets.key;

谢谢!

4

0 回答 0