Heim > Betrieb und Instandhaltung > Nginx > Bereitstellung statischer Inhalte mit Nginx

Bereitstellung statischer Inhalte mit Nginx

(*-*)浩
Freigeben: 2019-11-30 14:37:38
Original
3418 Leute haben es durchsucht

Bereitstellung statischer Inhalte mit Nginx

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 ~]#
Nach dem Login kopieren

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>
Nach dem Login kopieren

Ö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 {
    }
}
Nach dem Login kopieren

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;
        }
    }
}
Nach dem Login kopieren

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;
        }
    }
}
Nach dem Login kopieren

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;
    }
}
Nach dem Login kopieren

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
Nach dem Login kopieren

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 -

Bereitstellung statischer Inhalte mit Nginx

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  &#39;$remote_addr - $remote_user [$time_local] "$request" &#39;
    # &#39;$status $body_bytes_sent "$http_referer" &#39;
    # &#39;"$http_user_agent" "$http_x_forwarded_for"&#39;;
    #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;
        }
    }
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage