Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Analysieren Sie die Implementierungsdetails des Reverse-Proxy-Cache und des dynamischen Inhaltscache von Nginx

Analysieren Sie die Implementierungsdetails des Reverse-Proxy-Cache und des dynamischen Inhaltscache von Nginx

王林
王林Original
2023-08-25 15:33:381325Durchsuche

Analysieren Sie die Implementierungsdetails des Reverse-Proxy-Cache und des dynamischen Inhaltscache von Nginx

Analysieren Sie die Implementierungsdetails des Reverse-Proxy-Cache und des dynamischen Inhaltscache von Nginx.

Nginx ist ein Hochleistungs-Webserver und Reverse-Proxy-Server. In tatsächlichen Webanwendungen ist es zur Verbesserung der Zugriffsgeschwindigkeit und Leistung der Website häufig erforderlich, Reverse-Proxy-Caching und dynamisches Content-Caching zu verwenden, um das Laden und die Reaktion von Webseiten zu beschleunigen. In diesem Artikel werden die Implementierungsdetails des Reverse-Proxy-Cache und des dynamischen Inhaltscache von Nginx im Detail analysiert und entsprechende Codebeispiele angegeben.

1. Implementierungsdetails des Reverse-Proxy-Cache

Reverse-Proxy-Cache bedeutet, dass Nginx zwar als Reverse-Proxy-Server fungiert, aber auch die Antwortergebnisse von Client-Anfragen in seinem eigenen Speicher oder auf der Festplatte zwischenspeichern kann, um das nächste Mal dieselbe Ressource anzufordern Das zwischengespeicherte Ergebnis wird direkt zurückgegeben, wodurch die Zugriffsgeschwindigkeit verbessert und der Druck auf den Back-End-Server verringert wird.

  1. Reverse-Proxy-Cache aktivieren

Zuerst müssen Sie die Reverse-Proxy-Cache-Funktion in der Nginx-Konfigurationsdatei aktivieren. Die folgenden Konfigurationsinformationen können im http-Modul hinzugefügt werden:

http {
    ...
    proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

    server {
        ...
    }
}

In der obigen Konfiguration gibt proxy_cache_path den Cache-Pfad und zugehörige Parameter an. Der Parameter levels gibt die Verzeichnisstruktur des Caches an, der Parameter keys_zone gibt den Namen und die Größe des Caches an, der Parameter max_size gibt das Maximum an Kapazität des Caches, inactive gibt die Cache-Ablaufzeit an und der Parameter use_temp_path gibt an, ob ein temporärer Pfad für das Caching verwendet werden soll. In der obigen Konfiguration verwenden wir einen Cache mit dem Namen my_cache. proxy_cache_path指定了缓存的路径和相关参数。levels参数指定了缓存的目录结构,keys_zone参数指定了缓存的名称和大小,max_size参数指定了缓存的最大容量,inactive参数指定了缓存的过期时间,use_temp_path参数指定了是否使用临时路径进行缓存。在上述配置中,我们使用了名为my_cache的缓存。

  1. 配置反向代理缓存的规则

在Nginx的配置文件中,可以通过location指令来配置反向代理缓存的规则。例如,我们可以将指定的URL路径进行缓存,具体的配置如下所示:

server {
    ...
    
    location /cached {
        proxy_cache my_cache;
        proxy_cache_valid 200 304 10m;
        proxy_cache_use_stale error timeout invalid_header http_500;
        proxy_cache_background_update on;
        proxy_pass http://backend_server;
    }
}

以上配置中,proxy_cache指定了使用哪个缓存,proxy_cache_valid指定了缓存的有效期,proxy_cache_use_stale指定了当缓存过期时是否使用旧的缓存进行响应,proxy_cache_background_update指定了是否后台更新缓存,proxy_pass指定了后端服务器的地址。

  1. 清除缓存

有时候需要手动清除缓存,可以使用proxy_cache_purge模块来实现。在Nginx的配置文件中,可以添加以下配置:

location /purge {
    bproxy_cache_purge my_cache "$scheme$request_method$host$request_uri";
}

以上配置中,proxy_cache_purge指定了清除缓存的命令,并传递了缓存的名称和请求的URI。

二、动态内容缓存的实现细节

动态内容缓存是指Nginx在反向代理服务器的同时,也可以将动态生成的内容进行缓存,以减轻后端服务器的负载和提高响应速度。

  1. 启用动态内容缓存

首先需要在Nginx的配置文件中启用动态内容缓存的功能。在http模块内可以添加以下配置信息:

http {
    ...
    fastcgi_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

    server {
        ...
    }
}

以上配置中,fastcgi_cache_path指定了缓存的路径和相关参数,与反向代理缓存的配置类似。同样,我们使用了名为my_cache的缓存。

  1. 配置动态内容缓存的规则

在Nginx的配置文件中,也可以通过location指令来配置动态内容缓存的规则。例如,我们可以将指定的URL路径的动态内容进行缓存,具体的配置如下所示:

server {
    ...
    
    location /dynamic {
        fastcgi_cache my_cache;
        fastcgi_cache_valid 200 10m;
        fastcgi_cache_methods GET HEAD;
        fastcgi_cache_use_stale error timeout invalid_header http_500;
        fastcgi_cache_lock on;
        fastcgi_cache_lock_timeout 5s;
        fastcgi_pass backend_server;
    }
}

以上配置中,fastcgi_cache指定了使用哪个缓存,fastcgi_cache_valid指定了缓存的有效期,fastcgi_cache_methods指定了哪些HTTP方法会被缓存,fastcgi_cache_use_stale指定了当缓存过期时是否使用旧的缓存进行响应,fastcgi_cache_lock指定了是否启用缓存锁和锁的超时时间,fastcgi_pass指定了后端服务器的地址。

  1. 清除缓存

同样地,有时候需要手动清除缓存,可以使用fastcgi_cache_purge模块来实现。在Nginx的配置文件中,可以添加以下配置:

location /purge {
    fastcgi_cache_purge my_cache "$scheme$request_method$host$request_uri";
}

以上配置中,fastcgi_cache_purge

    Reverse-Proxy-Cache-Regeln konfigurieren

    🎜In der Nginx-Konfigurationsdatei können Sie Reverse-Proxy-Cache-Regeln über die Anweisung location konfigurieren. Beispielsweise können wir den angegebenen URL-Pfad zwischenspeichern. Die spezifische Konfiguration lautet wie folgt: 🎜rrreee🎜In der obigen Konfiguration gibt proxy_cache an, welcher Cache verwendet werden soll, und proxy_cache_valid gibt an Der Gültigkeitszeitraum des Caches, proxy_cache_use_stale gibt an, ob der alte Cache verwendet werden soll, um zu reagieren, wenn der Cache abläuft, proxy_cache_background_update gibt an, ob der Cache im Hintergrund aktualisiert werden soll, Proxy_pass gibt die Adresse des Backend-Servers an. 🎜
      🎜Cache leeren🎜🎜🎜Manchmal müssen Sie den Cache manuell leeren. Dazu können Sie das Modul proxy_cache_purge verwenden. In der Nginx-Konfigurationsdatei können Sie die folgende Konfiguration hinzufügen: 🎜rrreee🎜In der obigen Konfiguration gibt proxy_cache_purge den Befehl zum Löschen des Caches an und übergibt den Cache-Namen und den angeforderten URI. 🎜🎜2. Implementierungsdetails des dynamischen Inhalts-Caching🎜🎜Dynamisches Inhalts-Caching bedeutet, dass Nginx auch dynamisch generierte Inhalte zwischenspeichern kann und gleichzeitig als Reverse-Proxy-Server fungiert, um die Belastung des Back-End-Servers zu reduzieren und die Antwortgeschwindigkeit zu verbessern. 🎜🎜🎜Dynamisches Inhalts-Caching aktivieren🎜🎜🎜Zuerst müssen Sie die dynamische Inhalts-Caching-Funktion in der Nginx-Konfigurationsdatei aktivieren. Die folgenden Konfigurationsinformationen können im http-Modul hinzugefügt werden: 🎜rrreee🎜In der obigen Konfiguration gibt fastcgi_cache_path den Cache-Pfad und zugehörige Parameter an, was der Reverse-Proxy-Cache-Konfiguration ähnelt. Auch hier verwenden wir einen Cache namens my_cache. 🎜
        🎜Konfigurieren Sie die Regeln für das dynamische Inhalts-Caching🎜🎜🎜In der Nginx-Konfigurationsdatei können Sie auch die Regeln für das dynamische Inhalts-Caching über die location-Direktive konfigurieren. Beispielsweise können wir den dynamischen Inhalt des angegebenen URL-Pfads zwischenspeichern. Die spezifische Konfiguration lautet wie folgt: 🎜rrreee🎜In der obigen Konfiguration gibt fastcgi_cache an, welcher Cache verwendet werden soll, fastcgi_cache_validcode >Gibt den Cache-Gültigkeitszeitraum an, <code>fastcgi_cache_methods gibt an, welche HTTP-Methoden zwischengespeichert werden, fastcgi_cache_use_stale gibt an, ob der alte Cache verwendet werden soll, um zu antworten, wenn der Cache abläuft, fastcgi_cache_lock gibt an, ob die Cache-Sperre und das Sperr-Timeout aktiviert werden sollen, und fastcgi_pass gibt die Adresse des Backend-Servers an. 🎜
          🎜Cache leeren🎜🎜🎜Ebenso müssen Sie manchmal den Cache manuell leeren. Sie können dazu das Modul fastcgi_cache_purge verwenden. In der Nginx-Konfigurationsdatei können Sie die folgende Konfiguration hinzufügen: 🎜rrreee🎜In der obigen Konfiguration gibt fastcgi_cache_purge den Befehl zum Löschen des Caches an und übergibt den Cache-Namen und den angeforderten URI. 🎜🎜Zusammenfassend analysiert dieser Artikel die Implementierungsdetails des Reverse-Proxy-Cache und des dynamischen Inhaltscache von Nginx im Detail und gibt entsprechende Codebeispiele. Durch die richtige Konfiguration und Verwendung der Caching-Funktion von Nginx können die Leistung und das Benutzererlebnis von Webanwendungen erheblich verbessert werden. 🎜

Das obige ist der detaillierte Inhalt vonAnalysieren Sie die Implementierungsdetails des Reverse-Proxy-Cache und des dynamischen Inhaltscache von Nginx. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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