Une seule langue
Plusieurs langues sur des sous-domaines
1
Acheminer chaque hôte de langue vers Ayakaleaf Pro
Ajoutez un nom DNS par langue et acheminez-les tous vers Ayakaleaf Pro avec un certificat qui les couvre, par exemple
*.example.com. Votre ingress ou votre équilibreur de charge doit transmettre l’en-tête Host sans le modifier, ce que font ingress-nginx et HAProxy par défaut.Les utilisateurs doivent accéder aux hôtes de langue sur les ports standard (https://cn.example.com, et non https://cn.example.com:30443) : Ayakaleaf Pro compare l’hôte sans le port.2
ConfigMap
30-config.yaml (additions)
COOKIE_DOMAIN permet au cookie de connexion de fonctionner sur chaque hôte de langue. Placez le JSON entre apostrophes simples. Un JSON invalide dans OVERLEAF_LANG_DOMAIN_MAPPING arrête tous les services du pod au démarrage ; vérifiez donc kubectl -n overleaf get pod après le redémarrage.Plusieurs répliques
La langue provient du nom d’hôte de chaque requête ; elle ne dépend donc pas de la réplique. Le cookie de persistance (sticky) de l’équilibreur de charge est défini par nom d’hôte, sauf si vous lui attribuez un domaine ; changer de langue peut donc déplacer un utilisateur vers une autre réplique. Sa session se trouve dans Redis et reste valide.Testé sur Kubernetes
Sur Kubernetes 1.37 derrière HAProxy, avecOVERLEAF_LANG_DOMAIN_MAPPING associant l’hôte du site à l’anglais, un hôte de. à l’allemand et un hôte fr. avec le NodePort :30081 au français : l’hôte du site affichait l’anglais, l’hôte de. l’allemand, et l’hôte fr. avec le port revenait à l’anglais, comme décrit ci-dessus.
