Heim > Betrieb und Instandhaltung > Nginx > So verwenden Sie Nginx für das Reverse-Proxy-Caching von HTTP-Anfragen

So verwenden Sie Nginx für das Reverse-Proxy-Caching von HTTP-Anfragen

王林
Freigeben: 2023-08-02 22:58:45
Original
1035 Leute haben es durchsucht

So verwenden Sie Nginx für das Reverse-Proxy-Caching von HTTP-Anfragen

Nginx ist eine leistungsstarke Open-Source-Webserversoftware. Nginx dient nicht nur als Webserver zur Verarbeitung statischer Ressourcenanfragen, sondern kann auch Reverse-Proxy für HTTP-Anfragen durchführen. Reverse Proxy kann uns dabei helfen, Clientanfragen zur Verarbeitung an mehrere Back-End-Server weiterzuleiten und die Antwortgeschwindigkeit durch Caching zu verbessern. In diesem Artikel wird erläutert, wie Sie den Reverse-Proxy-Cache in Nginx konfigurieren.

  1. Nginx installieren
    Zuerst müssen wir den Nginx-Server installieren. In einer Linux-Umgebung kann es über den Paketmanager installiert werden. Führen Sie am Beispiel von Debian/Ubuntu den folgenden Befehl aus:

    sudo apt update
    sudo apt install nginx
    Nach dem Login kopieren
  2. Reverse-Proxy-Cache konfigurieren
    Nach Abschluss der Installation müssen wir die Nginx-Konfigurationsdatei bearbeiten, um den Reverse-Proxy-Cache zu konfigurieren. Die Standardkonfigurationsdatei befindet sich unter /etc/nginx/nginx.conf. Öffnen Sie die Datei mit einem Texteditor und suchen Sie den Block http{}. /etc/nginx/nginx.conf。使用文本编辑器打开该文件,找到http{}块。

http{}块中添加以下配置:

proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m;
Nach dem Login kopieren

其中,/path/to/cache是缓存路径,可以根据实际情况进行修改。levels=1:2表示缓存目录的层级。keys_zone=my_cache:10m表示为缓存分配10M的内存,用于存储缓存的元数据。max_size=10g表示缓存的最大大小为10G。inactive=60m表示缓存文件在60分钟没有被访问时会被认为是过期的。

然后,在server{}块内添加以下配置:

proxy_cache my_cache;
proxy_cache_valid 200 302 1h;
proxy_cache_valid 301 404 10m;
proxy_cache_use_stale error timeout updating http_500 http_503;
Nach dem Login kopieren

其中,proxy_cache my_cache表示启用名为my_cache的缓存。proxy_cache_valid用于配置不同状态码的缓存有效期时间,例如200和302状态码的请求缓存有效期为1小时。proxy_cache_use_stale用于指定当后端服务器出现错误或超时时,是否使用过期的缓存作为响应。

  1. 配置反向代理
    在完成了缓存的配置后,我们需要配置反向代理。在server{}块内,添加以下配置:

    location / {
     proxy_pass http://backend_server;
     proxy_set_header Host $host;
     proxy_cache_bypass $http_cache_control;
     proxy_cache_key $uri$is_args$args;
    }
    Nach dem Login kopieren

    其中,proxy_pass指定了后端服务器的地址。proxy_set_header用于设置代理请求中的头信息,这里是将请求的host头设置为当前主机。proxy_cache_bypass用于指定哪些请求不使用缓存,这里是根据请求头中的cache-control来决定。proxy_cache_key

  2. Fügen Sie die folgende Konfiguration im http{}-Block hinzu:
  3. sudo systemctl restart nginx
    Nach dem Login kopieren

    Unter diesen ist /path/to/cache der Cache-Pfad und kann entsprechend geändert werden die tatsächliche Situation. levels=1:2 gibt die Ebene des Cache-Verzeichnisses an. keys_zone=my_cache:10m bedeutet, dass dem Cache 10 MB Speicher zum Speichern von Cache-Metadaten zugewiesen werden. max_size=10g gibt an, dass die maximale Größe des Caches 10 GB beträgt. inactive=60m bedeutet, dass die Cache-Datei als abgelaufen gilt, wenn 60 Minuten lang nicht auf sie zugegriffen wird.

    Dann fügen Sie die folgende Konfiguration innerhalb des server{}-Blocks hinzu:

    rrreee

    Wobei proxy_cache my_cache bedeutet, den Cache mit dem Namen my_cache zu aktivieren . proxy_cache_valid wird verwendet, um den Cache-Gültigkeitszeitraum verschiedener Statuscodes zu konfigurieren. Der Anforderungs-Cache-Gültigkeitszeitraum der Statuscodes 200 und 302 beträgt beispielsweise 1 Stunde. proxy_cache_use_stale wird verwendet, um anzugeben, ob ein abgelaufener Cache als Antwort verwendet werden soll, wenn ein Fehler oder eine Zeitüberschreitung auf dem Backend-Server auftritt.
    1. Reverse-Proxy konfigurieren
      Nach Abschluss der Cache-Konfiguration müssen wir den Reverse-Proxy konfigurieren. Fügen Sie im server{}-Block die folgende Konfiguration hinzu:

      rrreee

      Unter diesen gibt proxy_pass die Adresse des Backend-Servers an. proxy_set_header wird verwendet, um die Header-Informationen in der Proxy-Anfrage festzulegen. Hier wird der host-Header der Anfrage auf den aktuellen Host gesetzt. proxy_cache_bypass wird verwendet, um anzugeben, welche Anfragen den Cache nicht verwenden. Dies wird basierend auf dem cache-control im Anfrageheader bestimmt. proxy_cache_key wird verwendet, um einen Cache-Schlüssel zu generieren, der eine Kombination aus dem angeforderten URI und den Parametern ist.

      🎜🎜🎜Nginx neu starten und testen🎜Speichern und beenden Sie nach Abschluss der obigen Konfiguration die Konfigurationsdatei. Starten Sie dann den Nginx-Dienst mit dem folgenden Befehl neu: 🎜rrreee🎜 Als nächstes senden Sie eine Anfrage über den Browser oder das Befehlszeilentool, um die Funktionsweise des Nginx-Cache zu beobachten. 🎜🎜🎜🎜Zusammenfassung🎜Durch die obigen Schritte haben wir die Reverse-Proxy-Cache-Funktion von Nginx erfolgreich konfiguriert. Durch den Einsatz von Caching kann die Reaktionsgeschwindigkeit von Anfragen deutlich verbessert und die Belastung des Backend-Servers reduziert werden. Gleichzeitig bietet Nginx auch flexible Konfigurationsmöglichkeiten, die je nach tatsächlichem Bedarf angepasst und optimiert werden können. 🎜🎜Ich hoffe, dieser Artikel hilft Ihnen, die Reverse-Proxy-Caching-Funktion von Nginx zu verstehen und zu verwenden. Wenn Sie Fragen oder Zweifel haben, hinterlassen Sie bitte eine Nachricht im Kommentarbereich und ich werde mein Bestes geben, um sie zu beantworten. 🎜

    Das obige ist der detaillierte Inhalt vonSo verwenden Sie Nginx für das Reverse-Proxy-Caching von HTTP-Anfragen. 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