Eine Sprache
Mehrere Sprachen auf Subdomains
1
Jeden Sprach-Host an Ayakaleaf Pro weiterleiten
Fügen Sie pro Sprache einen DNS-Namen hinzu und leiten Sie alle an Ayakaleaf Pro weiter, mit einem Zertifikat, das sie alle abdeckt, zum Beispiel
*.example.com. Ihr Ingress oder Load Balancer muss den Host-Header unverändert weitergeben, was ingress-nginx und HAProxy standardmäßig tun.Benutzer müssen die Sprach-Hosts über die Standardports erreichen (https://cn.example.com, nicht https://cn.example.com:30443): Ayakaleaf Pro vergleicht den Host ohne Port.2
ConfigMap
30-config.yaml (additions)
COOKIE_DOMAIN sorgt dafür, dass das Anmelde-Cookie auf jedem Sprach-Host funktioniert. Setzen Sie das JSON in einfache Anführungszeichen. Ungültiges JSON in OVERLEAF_LANG_DOMAIN_MAPPING hält beim Start jeden Dienst des Pods an, prüfen Sie daher nach dem Neustart kubectl -n overleaf get pod.Mehrere Replikate
Die Sprache ergibt sich aus dem Hostnamen jeder Anfrage und hängt daher nicht vom Replikat ab. Das Sticky-Cookie des Load Balancers wird pro Hostname gesetzt, sofern Sie ihm keine Domain zuweisen; ein Sprachwechsel kann einen Benutzer daher auf ein anderes Replikat verschieben. Seine Sitzung liegt in Redis und bleibt gültig.Auf Kubernetes getestet
Auf Kubernetes 1.37 hinter HAProxy, mitOVERLEAF_LANG_DOMAIN_MAPPING, das den Host der Website auf Englisch, einen de.-Host auf Deutsch und einen fr.-Host mit dem NodePort :30081 auf Französisch abbildete: Der Host der Website zeigte Englisch, der de.-Host Deutsch, und der fr.-Host mit Port fiel wie oben beschrieben auf Englisch zurück.
