单一语言
在子域名上使用多种语言
1
将每个语言主机路由到 Ayakaleaf Pro
为每种语言添加一个 DNS 名称,并使用覆盖所有这些名称的证书(例如
*.example.com)将它们全部路由到 Ayakaleaf Pro。你的 ingress 或负载均衡器必须原样传递 Host 请求头,ingress-nginx 和 HAProxy 默认就是这样做的。用户必须通过标准端口访问语言主机(https://cn.example.com,而不是 https://cn.example.com:30443):Ayakaleaf Pro 在比较主机时不包含端口。2
ConfigMap
30-config.yaml (additions)
COOKIE_DOMAIN 使登录 cookie 能在每个语言主机上生效。请将 JSON 放在单引号中。OVERLEAF_LANG_DOMAIN_MAPPING 中的 JSON 无效会导致 pod 的所有服务在启动时停止,因此请在重启后检查 kubectl -n overleaf get pod。多个副本
语言取决于每个请求的主机名,因此与副本无关。负载均衡器的粘性 cookie 是按主机名设置的(除非你为其指定域名),因此切换语言可能会将用户转移到另一个副本;其会话保存在 Redis 中,仍然有效。在 Kubernetes 上的测试
在 Kubernetes 1.37 上部署于 HAProxy 之后,OVERLEAF_LANG_DOMAIN_MAPPING 将站点主机映射为英语、de. 主机映射为德语、带有 NodePort :30081 的 fr. 主机映射为法语:站点主机显示英语,de. 主机显示德语,而带端口的 fr. 主机回退为英语,与上文所述一致。
