Один язык
Несколько языков на поддоменах
1
Направьте хост каждого языка на Ayakaleaf Pro
Добавьте DNS-имя для каждого языка и направьте их все на Ayakaleaf Pro с сертификатом, который их покрывает, например
*.example.com. Ваш 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 в одинарные кавычки. Недопустимый JSON в OVERLEAF_LANG_DOMAIN_MAPPING останавливает все сервисы пода при запуске, поэтому после перезапуска проверьте kubectl -n overleaf get pod.Несколько реплик
Язык определяется по имени хоста каждого запроса, поэтому он не зависит от реплики. Sticky-cookie балансировщика нагрузки устанавливается для каждого имени хоста отдельно, если не задать для него домен, поэтому переключение языка может перевести пользователя на другую реплику; его сеанс хранится в Redis и остаётся действительным.Проверено на Kubernetes
В Kubernetes 1.37 за HAProxy, сOVERLEAF_LANG_DOMAIN_MAPPING, сопоставляющим хост сайта с английским, хост de. с немецким и хост fr. с NodePort :30081 с французским: хост сайта отображался на английском, хост de. — на немецком, а хост fr. с портом откатывался на английский, как описано выше.
