Da NGINX ein Webserver ist, ist es natürlich relativ einfach damit eine Webseite auszuliefern. Hierzu gibt man den Port in der Config an und das Verzeichnis aus dem heraus das ganze serviert wird.
Wenn wir uns den NGINX Webserver installiert haben (unter Ubuntu z.B. apt install nginx
) und zu unserem Konfigurationsordner navigieren sieht es erstmal wie folgt aus:
1➜ ls -la
2total 68
3drwxr-xr-x 10 root root 4096 Oct 8 11:16 .
4drwxr-xr-x 148 root root 12288 Nov 11 20:29 ..
5drwxr-xr-x 2 root root 4096 Oct 8 11:16 conf.d
6drwxr-xr-x 2 root root 4096 Oct 8 11:16 conf.mail.d
7drwxr-xr-x 2 root root 4096 Oct 8 11:16 conf.stream.d
8-rw-r--r-- 1 root root 1007 Aug 12 16:28 fastcgi_params
9-rw-r--r-- 1 root root 2676 Oct 8 11:16 mime.types
10lrwxrwxrwx 1 root root 22 Aug 14 07:20 modules -> /usr/lib/nginx/modules
11-rw-r--r-- 1 root root 2296 Oct 8 11:16 nginx.conf
12-rw-r--r-- 1 root root 636 Aug 12 16:28 scgi_params
13drwxr-xr-x 2 root root 4096 Oct 8 11:16 sites-available
14drwxr-xr-x 2 root root 4096 Oct 8 11:16 sites-enabled
15drwxr-xr-x 2 root root 4096 Oct 8 11:16 snippets
16drwxr-xr-x 2 root root 4096 Oct 8 11:16 streams-available
17drwxr-xr-x 2 root root 4096 Oct 8 11:16 streams-enabled
18-rw-r--r-- 1 root root 664 Aug 12 16:28 uwsgi_params
der Konfigurationsordner von einem NGINX
Wichtig hierbei ist für uns jetzt allerdings nur die folgenden Dateien bzw. Ordner
Innerhalb unserer nginx.conf sehen wir nun, dass einfach die Dateien aus den anderen Verzeichnissen eingebunden werden
1include /etc/nginx/conf.d/*.conf;
2include /etc/nginx/sites-enabled/*;
Einbinden von weiteren Konfigurationen am Ende der
nginx.conf
Wir legen eine Datei in unter /etc/nginx/conf.d/
mit einem Namen den wir uns selbst aussuchen an. Die Endung dieser Datei muss aber mit .conf
enden.
Innerhalb dieser Datei schreiben wir nun folgendes
server {
}
innerhalb des Server Blocks liegt die Konfiguration von Servern
Hier gibt es n un verschiedene Parameter die man angeben kann um die Konfiguration aufzubauen. Wichtig hierbei ist allerdings der listen Parameter und der server_name. listen
gibt den Port an auf welchem die Konfiguration hört und server_name ist tatsächlich der Name. Beim Namen sind natürlich auch wildcards, regex oder localhost in Ordnung. Danach können noch für die verschiedenen URL´s andere Regeln oder Verzeichnisse definiert werden.
Wir wollen aber mal zurück und wollen, dass unsere Seite für uns erreichbar ist auf Port 80 (http). Da es für uns ist, nehmen wir den Namen localhost. Das Verzeichnis auf dem unsere Webseite liegt ist /var/www/html/meineWebseite
.
server {
listen 80;
server_name localhost;
location / {
root /var/www/html/meineWebseite;
index index.html index.htm;
}
}
Die location gibt an, welche URL gematched wird. So kann man z.B. bei PHP oder Bildern andere Server oder Verzeichnisse ansprechen als die eigentliche Webseite. Der index ist nun der Einstiegspunkt von uns und ist meistens bei einer Webseite die index.html (oder auch index.htm). Der root Parameter setzt dabei das Verzeichnis wo unsere Webseite liegt.
Nachdem man die Konfiguration geändert hat, startet man den Dienst einmal neu
1sudo service nginx restart
Nun kann über die IP-Adresse (localhost oder 127.0.0.1) auf den Server zugegriffen werden und die Webseite wird angezeigt.