NGINX ist ein Hochleistungs-Webserver, der insbesondere zur Verwaltung statischer Dateien und als Reverse-Proxy verwendet wird. Dank seiner Vielseitigkeit kann NGINX in jeder Situation eingesetzt werden. In dieser Anleitung erfahren Sie, wie Sie es auf Ihrem Server installieren und für zwei oder mehr Domains konfigurieren.
Verbinden Sie sich zunächst über eine SSH-Verbindung mit Ihrem Server. Wenn Sie dies noch nicht getan haben, wird empfohlen, unseren Leitfaden zu befolgen, um sich sicher mit SSH zu verbinden. Im Falle eines lokalen Servers gehen Sie zum nächsten Punkt und öffnen Sie das Terminal Ihres Servers.
Installation von NGINX
Aktualisieren Sie die Distributions-Repositories, um sicherzustellen, dass Sie die neueste Version von NGINX herunterladen:
$ sudo apt update
Führen Sie den folgenden Befehl aus, um das NGINX-Paket zu installieren:
$ sudo apt install nginx
Sobald die Installation abgeschlossen ist, starten Sie den Dienst und installieren Sie ihn auf dem System:
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
Firewall-Konfiguration
Falls eine Firewall auf Ihrem System vorhanden ist, stellen Sie diese so ein, dass HTTP-Verkehr und HTTPS-Verkehr zu Ihrem Computer zugelassen werden.
Bei Verwendung der UFW-Firewall werden vorinstallierte Profile für NGINX bereitgestellt. Sehen wir uns also an, wie man sie aktiviert.
Führen Sie diesen Befehl aus, um die verfügbaren Profile zu überprüfen, die auf der UFW-Firewall installiert sind:
$ sudo ufw app list
Eine Liste ähnlich der folgenden wird auf dem Bildschirm angezeigt:
Available applications:
Dovecot IMAP
Dovecot POP3
Dovecot Secure IMAP
Dovecot Secure POP3
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Postfix
Postfix SMTPS
Postfix Submission
Um HTTP- (Port 80) und HTTPS- (Port 443) Datenverkehr zuzulassen, verwenden Sie das Profil „Nginx Full“.
Überprüfen Sie Ihre Profilinformationen wie unten gezeigt:
$ sudo ufw app info "Nginx Full"
Die Beschreibung des Profils auf dem Bildschirm erscheint:
Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server
Ports:
80,443/tcp
Nachdem Sie das Profil überprüft haben, können Sie es aktivieren:
$ sudo ufw allow in "Nginx Full"
An dieser Stelle ist die Konfiguration von NGINX und der Firewall abgeschlossen. Testen Sie den Webserver, indem Sie die Adresse http://
Zwei Domains/Websites richtig konfigurieren:
Im Folgenden wird gezeigt, wie zwei virtuelle Hosts (sogenannte "Serverblöcke") so konfiguriert werden, dass sie zwei vollständig getrennte Webspaces haben. In diesem Beispiel verwenden wir zwei fiktive Domains:
www.ihredomain.com
www.ihredomain2.com
Beide A-Einträge müssen auf die öffentliche IP-Adresse Ihres Servers zeigen .
Erstellen Sie zunächst alle erforderlichen Ordner für die öffentlichen Dateien Ihrer Websites:
$ sudo mkdir /var/www
$ sudo mkdir /var/www/yourdomain.com
$ sudo mkdir /var/www/yourdomain.com/htdocs
$ sudo mkdir /var/www/yourdomain.com/logs
$ sudo mkdir /var/www/yourdomain2.com
$ sudo mkdir /var/www/yourdomain2.com/htdocs
$ sudo mkdir /var/www/yourdomain2.com/logs
Kopieren Sie als temporären Inhalt die Standard-NGINX-Seite in die htdocs-Ordner jeder Domain:
$ sudo cp /usr/share/nginx/html/* /var/www/yourdomain.com/htdocs/
$ sudo cp /usr/share/nginx/html/* /var/www/yourdomain2.com/htdocs/
Fahren Sie nun mit der eigentlichen Konfiguration von NGINX fort. NGINX liest normalerweise alle .conf-Dateien im Verzeichnis /etc/nginx/conf.d/, fahren Sie fort, indem Sie zwei Dateien erstellen (eine pro Domain) und sie benennen:
ihredomain_com.conf
ihredomain2_com.conf
Verwenden Sie Ihren bevorzugten Texteditor, um die folgende Konfiguration in die Datei yourdomain_com.conf zu schreiben:
server {
listen 80;
server_name yourdomain.com *.yourdomain.com;
root /var/www/yourdomain.com/htdocs;
access_log /var/www/yourdomain.com/logs/access.log main;
error_log /var/www/yourdomain.com/logs/error.log warn;
}
Natürlich müssen Sie auch für yourdomain2_com.conf eine ähnliche Konfiguration verwenden:
server {
listen 80;
server_name yourdomain2.com *.yourdomain2.com;
root /var/www/yourdomain2.com/htdocs;
access_log /var/www/yourdomain2.com/logs/access.log main;
error_log /var/www/yourdomain2.com/logs/error.log warn;
}
Neben der Einstellung des Stammordners für die Dateien der virtuellen Domäne gibt es auch Einstellungen, um die Pfade der Protokolldateien (sowohl Zugriff als auch Fehler) zu konfigurieren, um jeweils ein Protokoll zu haben Domain. Normalerweise speichert NGINX alle Protokolle im Verzeichnis /var/log/nginx/, aber im Falle einer Mehrfachdomäne kann das Ergebnis verwirrend sein.
Logs können mit der Zeit zu groß werden, wenn ihr Pfad geändert wird. Daher ist es notwendig, eine Rotation der Dateien einzustellen, um die ältesten Inhalte zu eliminieren. Verwenden Sie dazu die Software logrotate.
Um neue Protokolldateien in den Logrotate-Einstellungen hinzuzufügen, bearbeiten Sie die Datei /etc/etc/logrotate.d/nginx:
/var/log/nginx/*log {
create 0644 nginx nginx
daily
rotate 10
missingok
notifempty
compress
sharedscripts
postrotate
/bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
endscript
}
Wie Sie sehen können, gibt es bereits eine Konfiguration für die NGINX-Dateien in /var /log/nginx. Fahren Sie fort, indem Sie den ersten Teil der Datei wie folgt ändern:
/var/log/nginx/*log
/var/www/*/logs/* {
...
}
Sobald diese Änderung vorgenommen wurde, verwaltet logrotate alle Dateien in den Protokollordnern von /var/www/mydomain.it und /var/www/yourdomain.com (und allen anderen), ohne Sie müssen sich um jede andere Domain kümmern, die in Zukunft hinzugefügt werden könnte.
Starten Sie nach Abschluss den Dienst neu, um die Änderungen zu übernehmen:
$ sudo systemctl reload nginx