Eine wichtige Webserver-Aufgabe ist die Bereitstellung von Dateien (z. B. Bildern oder statischen HTML-Seiten).
Auf Anfrage werden Dateien aus verschiedenen lokalen Verzeichnissen bereitgestellt: /data/www (das HTML-Dateien enthalten kann) und /data/images (das Bilder enthalten kann). Dazu müssen Sie die Konfigurationsdatei bearbeiten und den Serverblock innerhalb des http-Blocks mithilfe von zwei Standortblöcken einrichten. (Empfohlenes Lernen: Nginx-Verwendung)
Erstellen Sie zunächst das Verzeichnis /data/www, fügen Sie eine index.html-Datei mit beliebigem Textinhalt darin ein und erstellen Sie /data/ Öffnen Sie das Bilderverzeichnis und fügen Sie dort einige Bilder ein. Erstellen Sie zwei Verzeichnisse -
[root@localhost ~]# mkdir -p /data/www [root@localhost ~]# mkdir -p /data/images [root@localhost ~]#
Legen Sie zwei Dateien in die beiden oben erstellten Verzeichnisse: /data/www/index.html und /data/images/logo.png, /data Der Inhalt von /www Die Datei /index.html besteht nur aus einer Zeile und lautet wie folgt:
<h2> New Static WebSite Demo.</h2>
Öffnen Sie als Nächstes die Konfigurationsdatei (/usr/local/nginx/conf/nginx.conf). Die Standardkonfigurationsdatei enthält bereits mehrere Beispiele für Serverblöcke, von denen die meisten auskommentiert sind. Kommentieren Sie nun alle diese Blöcke aus und starten Sie einen neuen Serverblock:
http { server { } }
Typischerweise kann eine Konfigurationsdatei mehrere Serverblöcke enthalten, die sich durch den Port, auf dem der Server lauscht, und den Servernamen unterscheiden. Nachdem Nginx bestimmt hat, welcher Server die Anfrage bearbeiten soll, testet es den im Anfrageheader angegebenen URI anhand der Parameter der Standortanweisung, die im Service--Block definiert ist.
Fügen Sie den folgenden Standortblock zum Serverblock hinzu:
http { server { location / { root /data/www; } } }
Der Standortblock gibt das Präfix „/“ an, das mit dem URI in der Anfrage verglichen wird . Bei übereinstimmenden Anfragen wird der URI dem in der Root-Direktive angegebenen Pfad (d. h. /data/www) hinzugefügt, um den Pfad zur angeforderten Datei im lokalen Dateisystem zu bilden. Wenn mehrere übereinstimmende Standortblöcke vorhanden sind, wählt Nginx den mit dem längsten Präfix aus, der mit dem Standortblock übereinstimmt. Der obige Standortblock bietet die kürzeste Präfixlänge von 1, daher wird dieser Block nur verwendet, wenn alle anderen Standortblöcke keine Übereinstimmung liefern können.
Als nächstes fügen Sie einen zweiten Standortblock hinzu:
http { server { location / { root /data/www; } location /images/ { root /data; } } }
Es wird /images/(location/ sein, das auch mit Anfragen wie dieser übereinstimmt, aber mit einem kürzeren Präfix , „/images/“ ist länger als „/“), um der Anfrage zu entsprechen.
Die endgültige Konfiguration des Serverblocks sollte wie folgt aussehen:
server { location / { root /data/www; } location /images/ { root /data; } }
Dies ist bereits ein Server, der den Standardport 80 überwacht und auf dem lokalen Computer (http://localhost/) zugänglich ist. funktionierende Konfiguration. Als Antwort auf eine Anfrage nach einem URI, der mit /images/ beginnt, sendet der Server Dateien aus dem Verzeichnis /data/images. Als Antwort auf eine http://localhost/images/logo.png-Anfrage sendet nginx beispielsweise die Datei /data/images/logo.png an den Dienst. Wenn die Datei nicht vorhanden ist, sendet Nginx eine Antwort mit dem Hinweis auf einen 404-Fehler. Anfragen für URIs, die nicht mit /images/ beginnen, werden dem Verzeichnis /data/www zugeordnet. Als Antwort auf eine Anfrage für http://localhost/about/example.html sendet nginx beispielsweise die Datei /data/www/about/example.html.
Um die neue Konfiguration anzuwenden, starten Sie nginx, falls dies noch nicht geschehen ist, oder senden Sie ein Neuladesignal an den Hauptprozess von nginx, indem Sie den folgenden Befehl ausführen:
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload
If Ein Fehler oder eine Ausnahme verhindert das. Wenn es normal funktioniert, können Sie versuchen, die Dateien access.log und error.log im Verzeichnis /usr/local/nginx/logs oder /var/log/nginx zu überprüfen, um den Grund zu finden.
Öffnen Sie einen Browser oder verwenden Sie CURL, um wie unten gezeigt auf den Nginx-Server zuzugreifen -
Der vollständige Inhalt der Konfiguration der Datei nginx.conf lautet wie folgt :
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; ## 新服务(静态网站) server { location / { root /data/www; } location /images/ { root /data; } } }
Das obige ist der detaillierte Inhalt vonBereitstellung statischer Inhalte mit Nginx. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!