CCM19 im Cluster - Hochverfügbar
Grundsätzlich lässt sich CCM19 auch problemlos im Cluster betreiben. Die CCM19
Diese Technologie lässt sich auch mit der Standard Agentur
Grundsätzlich muss entschieden werden, auf welche Struktur man aufsetzen möchte. CCM19 läuft sowohl mit einem dateibasiertem Ansatz mit JSON
Falls Sie planen irgendwann einmal mehr als 1000 Domains zu verwalten, sollten Sie direkt mit einer MongoDB arbeiten – selbst wenn Sie zum Start nur einen Server nutzen. Ein Umzug von JSON auf MongoDB ist nicht trivial und erfordert einiges an Arbeit.
Bei der Installation und Verwaltung gehen wir davon aus, dass die verwendeten Server über einen Apache Webserver mit PHP verfügen. Im Falle der Nutzung von MongoDB muss natürlich auch dieser Datenbank mit den entsprechenden PHP libs installiert sein. Beachten Sie dabei, dass die Anforderungen bzgl. des Traffics hoch sind und optimieren Sie den Zugriff dementsprechend auf Ihren Servern.
Sinnvoll ist die Verwendung von
Dateibasierter Cluster
Ein dateibasierter Cluster ist mit verteilten Dateisystemen wie GlusterFS möglich.
Hierfür muss vor der Installation in der ccm19
Zunächst um die Cluster
APP_CLUSTER_PEERS='http://192.168.0.4 http://192.168.0.5'
Mehrere URLs werden durch Leerzeichen getrennt, es funktioniert aber auch mit nur einer. Nötig sind prinzipiell nur die URLs der jeweils anderen Instanzen im Cluster.
APP_BUNDLE_VAR=1
Damit zeigt man an dass die zentralen Daten die Verzeichnis var/config<nt>-</nt>bundle gespeichert werden. Dieses Verzeichnis muss dann via z.B. GlusterFS synchron zwischen allen Instanzen gehalten werden.
Den session_save_path() sollte man dann in das Verzeichnis /var/config<nt>-</nt>bundle/tmp/ legen. So kann man sich einloggen und der Loginzustand bleibt auch beim Wechsel der Zugriffe auf die unterschiedlichen Cluster
Cluster mit MongoDB
Die Installation mit MongoDB erfolgt schon über die Installations
Auch bei dieser Variante muss die .env.local auf allen Instanzen im Cluster ergänzt werden (Details s.o.):
APP_CLUSTER_PEERS='http://192.168.1.2 http://192.168.1.1'
Für die höchste Ausfallsicherheit sollten in der .env.local jeder Cluster
APP_MONGODB_CONNECTION_STRING='mongodb://user:password@%2Frun%2Fmongodb%2Fmongod.sock,192.168.1.1:27017,192.168.1.2:27017'
Die initiale Konfiguration eines MongoDB
Serverseitige Cronjobs
Standardmäßig werden regelmäßig auszuführende Aufgaben (Cronjobs) durch zufällig ausgewählte Frontend
Deshalb empfehlen wir, in Clustern serverseitige Cronjobs (z.B. in der Crontab oder als Systemdbin/console app:cron:run <nt>-</nt><nt>-</nt>timeout 15 auf jeder Instanz alle 2
Sobald die serverseitigen Cronjobs eingerichtet und getestet wurden, kann die Frontend
APP_CRON_MODE=server