Für hohe Zugriffszahlen empfiehlt es sich, VIMP auf mehreren Servern zu betreiben, um die Last aufzuteilen.
Alles, was Sie hierfür tun müssen, ist, VIMP auf der gewünschten Anzahl von Servern zu installieren. Die Besonderheit dabei ist, dass alle VIMP-Installationen auf dieselbe Datenbank zugreifen müssen. Diese kann dabei entweder auf einem eigenen Server liegen oder auf einem der Webserver. Wichtig ist, dass sie von allen VIMP-Instanzen erreichbar ist.
Über einen vorgeschalteten Load-Balancer (dieser muss Sticky Sessions unterstützen und darf nicht im Round Robin-Verfahren konfiguriert sein) gelangen die Besucher der Webseite nun auf einen der installierten Server.
Im Standard-Fall erhält jede VIMP-Instanz ihren eigenen Storage, der im userdata-Verzeichnis liegt. Das resultiert darin, dass ein hochgeladenes Video erst einmal nur auf dem entsprechenden Webserver gespeichert wird, über den es hochgeladen wurde.
Natürlich soll das Medium aber ja auf allen Webservern verfügbar sein. Für die Verteilung der Dateien über alle Server, gibt es prinzipiell zwei Möglichkeiten:
Serversynchronisation:
Durch Aktivierung und Konfiguration des "Transfer"-Moduls werden hochgeladene Medien auf alle anderen Server im Clusterverbund synchronisiert.
Aktivieren Sie hierfür das Transfer-Modul unter Konfiguration -> Clustering -> Transfer.
Anschließend tragen Sie alle Server im Verbund unter "Transfer" in der Topnavigation des Admin Panels ein. Für jeden Server erstellen Sie einen neuen Eintrag mit einem beliebigen Namen sowie der kompletten URL zum Server (z.B. https://server1.meinvimp.com). Wichtig ist also, dass jeder Server unter einer eigenen Domain direkt erreichbar ist.
Abschließend öffnen Sie das Optionen-Menü des Eintrags, der den aktuellen Server beschreibt, und klicken auf "Set". Damit wird dieser Eintrag als Master-Eintrag für den aktuellen Server definiert. Verfahren Sie so mit allen anderen Servern im Verbund, bis jeder der Server seinen "Master"-Eintrag hat.
Zum Abschluss muss nur noch ein Cron-Job eingerichtet werden, der dafür sorgt, dass der Synchronisationstask läuft:
1 * * * * php -f /pfad/zu/vimp/vimp -- framework:transfer > /dev/null 2>&1
Ersetzen Sie im obigen Beispiel /pfad/zu/vimp/ mit dem tatsächlichen Pfad zu Ihrer VIMP-Installation. Sollten Sie VIMP in einer Version kleiner als 6.0 verwenden, ersetzen Sie zusätzlich "vimp -- framework" durch "symfony -- framework".
Im Portal befindliche Medien werden dann regelmäßig zwischen allen Servern synchronisiert.
Zentrales Storage:
Alternativ zur Synchronisation der Medien können Sie auch ein zentrales Storage (z.B. ein NAS) einbinden. Hierzu muss das NAS einfach in jeder der VIMP-Installationen auf das userdata-Verzeichnis gemounted werden. Damit liegen alle Medien zentral und eine Synchronisierung ist nicht notwendig.