In diesem Leitfaden werden wir untersuchen, wie nginx in Ubuntu 20.04 verwendet wird, d. h. nginx installieren und nginx konfigurieren, um eine virtuelle Site bereitzustellen.
Installieren von Nginx
Aktualisieren Sie unseren lokalen Paketindex, damit wir Zugriff auf die neuesten Paketlisten haben
sudo apt update
Installieren Sie nginx
sudo apt install nginx
Firewall aktualisieren
Verfügbare ufw-Apps auflisten:
sudo ufw app list
Beispielausgabe:
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Die aufgelisteten Nginx-Profile:
Nginx Full
– Sowohl http – 80 als auch https – 443Nginx HTTP
– nur http-Traffic 80Nginx HTTPS
– Nur https-Traffic 443 – TLS/SSL-verschlüsselter Traffic
Aktivieren Sie das gewünschte Profil – in unserem Fall sowohl http als auch https:
sudo ufw allow 'Nginx Full'
Bestätigen Sie die Änderung
sudo ufw status
Der obige Befehl gibt aus, welcher Datenverkehr erlaubt ist.
nginx konfigurieren
Installierte Version prüfen
sudo apt list --installed | grep nginx
Überprüfen Sie den systemd-Dienst
sudo systemctl status nginx
Sie sollten diese Ausgabe sehen, die zeigt, dass nginx ausgeführt wird
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-07-30 14:07:33 UTC; 2min 42s ago
Docs: man:nginx(8)
Main PID: 4684 (nginx)
Tasks: 5 (limit: 9257)
CGroup: /system.slice/nginx.service
├─4684 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─4685 nginx: worker process
├─4686 nginx: worker process
├─4687 nginx: worker process
└─4688 nginx: worker process
Jul 30 14:07:33 frhb64566ds systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 30 14:07:33 frhb64566ds systemd[1]: Started A high performance web server and a reverse proxy server.
Um sicherzustellen, dass der nginx-Dienst auch nach Neustarts immer ausgeführt wird, verwenden Sie diesen systemnd-Befehl, um Folgendes zu aktivieren:
sudo systemctl enable nginx
Sie können diese anderen systemd-Befehle verwenden, um nginx zu verwalten:
# To start the service
sudo systemctl start nginx
# To restart the service
sudo systemctl restart nginx
# To reload the service config
sudo systemctl reload nginx
# To stop the service config
sudo systemctl restart nginx
# To disable the service config
sudo systemctl restart nginx
Verwenden Sie diesen Befehl, um zu bestätigen, dass nginx tatsächlich ausgeführt wird und erreichbar ist:
curl http://server_ip/
wobei server_ip
ist die ip deines server. Wenn Sie aus irgendeinem Grund die öffentliche IP Ihres Servers nicht kennen, verwenden Sie dies, um dies zu überprüfen:
curl -4 icanhazip.com
Dann:
curl http://178.170.10.54/
Sie sollten die Standard-Nginx-Seite erhalten.
Nginx für einfache statische Seiten bereitstellen
Schauen wir uns ein Beispiel an, um eine statische Seite mit nginx bereitzustellen. Statische Seite ist HTML und CSS, die kein serverseitiges Rendering benötigen. Wir werden die Beispieldomäne your.domain.com
verwenden in unserem Fall.
Schritte:
-
Erstellen Sie das Verzeichnis zum Speichern unserer statischen Inhalte (wir verwenden
/var/www/your.domain.com
)sudo mkdir -p /var/www/your.domain.com
-
Stellen Sie sicher, dass der aktuelle Benutzer auf das erstellte Verzeichnis zugreifen kann
sudo chown -R ${USER}:${USER} /var/www/your.domain.com sudo chmod -R 755 /var/www/your.domain.com
-
Fügen Sie dem Verzeichnis eine Beispieldatei hinzu (
/var/www/your.domain.com/index.html
)cat > /var/www/your.domain.com/index.html <<EOF <html> <head> <title>Hola from your.domain.com!</title> </head> <body> <h1>Hey!</h1> <p>Our site <i>your.domain.com</i> is working as expected.</p> </body> </html> EOF
-
Erstellen Sie die nginx-Konfiguration im Verzeichnis
/etc/nginx/conf.d
wobei nginx nach Konfigurationen sucht, die beim Servieren eingeschlossen werden sollen. Wir erstellen die Datei/etc/nginx/conf.d/your.domain.com.conf
mit dem erforderlichen Inhalt.
Verwenden Sie diesen Befehl:
cat > /etc/nginx/conf.d/your.domain.com.conf <<EOF
server {
listen 80;
server_name your.domain.com;
root /var/www/your.domain.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
EOF
-
Testen Sie, um sicherzustellen, dass keine der nginx-Dateien Syntaxfehler enthält
sudo nginx -t
-
Wenn es keine Fehler gibt, starten Sie nginx neu, um die Konfiguration neu zu laden
sudo systemctl restart nginx
-
Um sicherzustellen, dass Ihre Domain den Server erreichen kann, bearbeiten Sie Ihre DNS-Konfiguration, um sicherzustellen, dass A-Einträge der Website
your.domain.com
enthalten zeigt auf die Server-IP.
Ihre Website sollte jetzt betriebsbereit sein. Bestätigen Sie, indem Sie http://your.domain.com
besuchenWichtige Nginx-Dateien und -Verzeichnisse in Nginx
-
/var/www/html
:Dies ist das Webinhaltsverzeichnis. Diese enthält den Standardseiteninhalt in der Dateiindex.nginx-debian.html
. Diese Seite wird gerendert, wenn kein bestimmter Server-Host definiert ist. -
/etc/nginx
:Enthält alle Nginx-Konfigurationsdateien. -
/etc/nginx/nginx.conf
:Dies ist die globale Hauptkonfigurationsdatei von nginx -
/etc/nginx/sites-available/
:Das Verzeichnis, in dem standortbezogene Serverblöcke gespeichert werden können. Nginx verwendet die in diesem Verzeichnis gefundenen Konfigurationsdateien nur, wenn sie mitsites-enabled
verknüpft sind Verzeichnis. Typischerweise wird die gesamte Konfiguration von Serverblöcken in diesem Verzeichnis durchgeführt und dann durch Verknüpfung mit dem anderen Verzeichnis aktiviert. -
/etc/nginx/sites-enabled/
:Das Verzeichnis, in dem aktivierte standortbezogene Serverblöcke gespeichert werden. Typischerweise werden diese erstellt, indem sie mit Konfigurationsdateien verknüpft werden, die sich im Verzeichnis „sites-available“ befinden. -
/etc/nginx/snippets
:Dieses Verzeichnis enthält Konfigurationsfragmente, die an anderer Stelle in die Nginx-Konfiguration aufgenommen werden können. Potenziell wiederholbare Konfigurationssegmente sind gute Kandidaten für die Umgestaltung in Snippets. -
/var/log/nginx/access.log
:Jede Anfrage an Ihren Webserver wird in dieser Protokolldatei aufgezeichnet, sofern Nginx nicht anders konfiguriert ist. -
/var/log/nginx/error.log
:Alle Nginx-Fehler werden in diesem Protokoll aufgezeichnet.