Wer von Apache zu Nginx migrieren möchte, ist sicherlich gut beraten, dies auf einem Testsystem auszuprobieren. Nach einem erfolgreichen Probelauf lässt sich Nginx aber auch auf einem Produktivsystem installieren und testen, ohne zunächst Apache zu deinstallieren.
Das erreicht man einfach, indem man Nginx auf einem anderen TCP-Port installiert. So lassen sich auch Beta-Tester einbinden.
Angenommen, man besitzt eine LAMP-Website, etwa ein Wiki, mit folgender Apache-Konfiguration (unter Debian/Ubuntu im Verzeichnis /etc/apache2/sites-available/default):
Um die Website auch unter Nginx verfügbar zu machen, installiert man den Webserver und FastCGI-Unterstützung für PHP. Unter Debian/Ubuntu wird das am einfachsten mit apt-get install nginx-extras php5-fpm erledigt.
Anschließend ändert man die Datei /etc/nginx/sites-available/default wie folgt:
Die Syntax für Nginx-Config-Files ist anders als bei Apache. Insbesondere ist das generelle Format an bind beziehungsweise C angelehnt, sprich Mengenklammern zur Gruppierung und Semikola am Ende jeder Zeile. Grundsätzlich sollte eine Nginx-Config-Datei aber für Apache-Profis einigermaßen lesbar sein.
Im Nginx-Wiki lässt sich die Bedeutung der einzelnen Optionen nachlesen. Einsteiger sollten sich zunächst mit location, try_files sowie allow und deny beschäftigen. Hier gibt es wichtige Unterschiede zu Apache.
Im einzelnen haben die Parameter folgende Bedeutung: Mit listen wird Port 8888 definiert. So stellt man sicher, dass Nginx zunächst nicht mit Apache in Konflikt kommt. Wer seine Site für IPv4 und IPv6 konfigurieren möchte, muss zwei Statements definieren.
Der Block location / gilt für die gesamte Website. try_files stellt sicher, dass Directories immer mit einem Backslash enden oder auf /index.php umgeleitet werden, falls das Directory nicht existiert. autoindex off bedeutet, dass Nutzer keine Dateien im Verzeichnis auflisten dürfen.
Im Block location ~ .php$ wird festgelegt, dass PHP-Seiten über FastCGI abgearbeitet werden. .php$ ist ein regulärer Ausdruck. Port 9000 auf der Localhost-Adresse ist der Default-Wert für FastCGI. Man darf nicht vergessen, die Datei fastcgi_params mit include einzubinden, die sich im Verzeichnis /etc/nginx befindet, jedenfalls wenn man das Debian-Paket php5-fpm einbindet. Das kann bei anderen Distributionen anders sein.
Der Block location ~ /.ht sorgt dafür, dass Apache-System-Dateien wie .htaccess gesperrt werden. Nginx hat aus Performancegründen keine Logik wie .htaccess.
Wenn die Konfigurationsdatei fertig ist, kann man sie mit nginx -t testen. Sofern noch nicht geschehen, startet man Nginx mit /etc/init.d/nginx start. Nach einer Konfigurationsänderung empfiehlt sich die Befehlsfolge nginx -t && nginx -s reload. Das testet die Config-Dateien und lädt sie, falls die Syntaxprüfung erfolgreich war.
Anschließend lässt sich die Website nicht nur mit http://www.example.com unter Apache aufrufen, sondern auch mit http://www.example.com:8888/. Sobald man feststellt, dass unter Nginx alles funktioniert, kann man Apache abschalten und den Port in der Datei /etc/nginx/sites-available/default von 8888 auf 80 ändern. Damit ist die Site erfolgreich migriert.
Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.
Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…
Zwei von Google-Mitarbeitern entdeckte Schwachstellen werden bereits aktiv gegen Mac-Systeme mit Intel-Prozessoren eingesetzt. Sie erlauben…
Die Hintermänner haben es unter anderem auf Daten von Facebook-Geschäftskonten abgesehen. Opfer werden über angebliche…
Bis 2027 werden 90 Prozent der Unternehmen eine Hybrid-Cloud-Strategie umsetzen.
Apple belegt in der Statistik von Counterpoint die ersten drei Plätze. Samsungs Galaxy S24 schafft…