Dies ist die archivierte Version des Blogs vom 05.01.2017. Aktuelle Beiträge findest du unter thomas-leister.de
 

Dieser Beitrag soll euch beim Einstieg in die Nginx Webserver Welt helfen – vor allem auch jenen unter euch, die das Apache Imperium verlassen wollen und auf Nginx umsteigen wollen. Die Konfigurationssyntax unterscheidet sich komplett von der des Apache Webservers, ist aber mindestens so einfach gehalten und einfach verständlich. Hier soll es um die ersten Schritte unter Ubuntu Server 14.04 gehen. Wenn ihr ein anderes Linux OS auf eurem Server nutzt, müsst ihr diese Seite aber nicht verlassen – Die Konfiguration an sich bleibt dieselbe. ;)

Nginx installieren

apt-get install nginx

Nach der Installation wird Nginx sofort gestartet und präsentiert euch folgende Seite, wenn ihr die IP-Adresse des Servers im Browser aufruft:

Wie auch beim Apache Webserver üblich, wird für jede Website / Domain ein eigener „Virtual Host“ in einer Datei erstellt. Diese sind in der Ubuntu-Version von Nginx sogar genauso aufgeteilt, wie bei Apache: Im Verzeichnis /etc/nginx/sites-available/ befinden sich die einzelnen Dateien für die virtuellen Server – in jeder Datei wird ein Server in einem „server {}“-Block definiert. Diese Dateien sollten die Dateiendung .conf tragen. Wenn ein Server (eine Website) aktiv sein soll, wird sie in /etc/nginx/sites-enabled/ verlinkt.

Anmerkung: Wenn man die Haupt-Konfigurationsdatei /etc/nginx/nginx.conf öffnet, kann man sehen, dass die Konfigurationen in sites-enabled via include direkt in die Hauptkonfiguration eingebunden werden:

##
# Virtual Host Configs
##

include /etc/nginx/sites-enabled/*;

Für Ubuntu wurde Nginx also so eingestellt, dass in sites-enabled nach weiteren Konfigurationsdateien gesucht wird. Möglicherweise ist das für andere Linux-Distributionen nicht der Fall. Damit man nicht alle VirtualHost Konfigurationen in die Hauptkonfiguration schreiben muss (und der Übersicht halber!) ist es empfehlenswert, die Virtual Host Konfigurationen – wie bei Ubuntu standardmäßig der Fall – in ein extra Verzeichnis auszulagern.

Für die vorher angezeigte Willkommensseite wurde schon eine Datei „default“ in sites-available angelegt und in sites-enabled verlinkt. Um das Prinzip besser zu verstehen, soll nun der vorhandene Server deaktiviert und ein neuer angelegt werden.

Vorhandenen Server deaktivieren

Um den Server für die default-Seite zu deaktivieren, muss nur der dazugehörige Link im sites-enabled Verzeichnis gelöscht werden:

rm /etc/nginx/sites-enabled/default

Sobald Nginx neu geladen wurde…

service nginx reload

ist die Seite von vorher nicht mehr zu erreichen.

Einen neuen Server anlegen

Nun wird eine neue Server-Datei angelegt, die nur die grundlegendste Konfiguration enthalten soll. Erstellt eine neue Datei „meinserver.conf“ in /etc/nginx/sites-available:

nano /etc/nginx/sites-available/meinserver.conf

… und füllt sie mit diesem Inhalt:

server {
    server_name meinserver.tld www.meinserver.tld;

    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www;
}

Jeder Server wird mit einem „server {}“ Block umschlossen. Innerhalb dieses Blocks werden die Einstellungen für jeden Server festgelegt. Die Konfiguration beginnt mit „server_name“. Dahinter stehen die Domains, bei deren Aufruf dieser Server aktiv werden soll. Im Beispiel soll der Server die Domains „meinserver.tld“ und „www.meinserver.tld“ versorgen.

Als nächstes folgt die Portdefinition, in der festgelegt wird, auf welchen Ports der Server „lauschen“ soll. Bei normalen HTTP Verbindungen ist dies Port 80. Zuerst wird der Port für IPv4-Adressen festgelegt, in der Zeile darunter für IPv6-Adressen. Das Attribut „default_server“ bedeutet, dass dieser Server angesprochen werden soll, wenn eine Anfrage keiner anderen „server {}“ Definition zugeordnet werden kann. Diese Einstellung darf aber nur bei einem Server gesetzt sein – bei allen weiteren Servern kann diese Einstellung selbstverständlich nicht mehr genutzt werden.

Zuletzt wird mit „root“ angegeben, in welchem Verzeichnis die HTML- oder PHP-Dateien liegen. Damit wird die oberste Verzeichnisebene für den Server definiert. Hier liegt i.d.R. die „index.html“ oder „index.php“.

(Falls das Verzeichnis /var/www/ noch nicht existieren sollte, kann es mit „mkdir /var/www“ angelegt werden. Die passenden Rechte müssen noch gesetzt werden: „chown www-data:www-data /var/www“)

Neuen Server aktivieren

Nun wird die neue Server-Konfigurationsdatei gespeichert und aktiviert. Für die Aktivierung wird – wie vorher schon erklärt – ein Link in sites-enabled auf die Konfiguration in sites-available erstellt:

ln -s /etc/nginx/sites-available/meinserver.conf /etc/nginx/sites-enabled/meinserver

Konfiguration überprüfen und Webserver neu laden

Nach Setzen des Links sollte überprüft werden, ob die neue Konfiguration für den Webserver überhaupt verständlich ist oder ob sich Fehler eingeschlichen haben. Dazu wird der Befehl

nginx -t

gestartet. Wird ein

nginx: configuration file /etc/nginx/nginx.conf test is successful

ausgegeben, ist alles okay, und der Webserver kann neu geladen werden:

service nginx reload

Der Server sollte nun über seine IP-Adressen wieder zu erreichen sein – und das, obwohl kein „server_name“ übereinstimmt. Das macht in diesem Fall aber nichts, weil mit „default_server“ ja bestimmt wurde, dass diese Konfiguration genutzt werden soll, wenn keine andere, passende auffindbar ist.

Wenn in /var/www noch keine index.html Datei liegt, wird vom Server übrigens ein „403-Forbidden“-Fehler ausgegeben. Sobald es eine index.html im /var/www/ Verzeichnis gibt, erscheint diese Fehlermeldung nicht mehr.

PHP installieren

Zur Einrichtung von PHP für den Nginx Webserver habe ich einen weiteren Beitrag geschrieben: Nginx: PHP installieren


Post published on 11. August 2014 | Last updated on 11. August 2014
Tags:             

Diesen Blog unterstützen

Wenn Dir der Beitrag gefallen hat, freue ich mich über einen kleinen Obolus :-) Bitcoin QR Code

PayPal-Seite: https://www.paypal.me/ThomasLeister
Meine Bitcoin-Adresse: 15z8 QkNi dHsx q9WW d8nx W9XU hsdf Qe5B 4s

Siehe auch: Unterstützung

Informationen zum Autor

Thomas Leister

Geb. 1995, Kurzhaar-Metaller, Geek und Blogger. Nutzt seit Anfang 2013 ausschließlich Linux auf Desktop und Servern. Student der Automobilinformatik an der Hochschule für angewandte Wissenschaften in Landshut.

7 thoughts on “Nginx: Installation und Konfiguration unter Ubuntu 14.04

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.