Heim > Artikel > Betrieb und Instandhaltung > 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
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.
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
/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;
其中,/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;
其中,proxy_cache my_cache
表示启用名为my_cache
的缓存。proxy_cache_valid
用于配置不同状态码的缓存有效期时间,例如200和302状态码的请求缓存有效期为1小时。proxy_cache_use_stale
用于指定当后端服务器出现错误或超时时,是否使用过期的缓存作为响应。
配置反向代理
在完成了缓存的配置后,我们需要配置反向代理。在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; }
其中,proxy_pass
指定了后端服务器的地址。proxy_set_header
用于设置代理请求中的头信息,这里是将请求的host
头设置为当前主机。proxy_cache_bypass
用于指定哪些请求不使用缓存,这里是根据请求头中的cache-control
来决定。proxy_cache_key
http{}
-Block hinzu: sudo systemctl restart nginx
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.
server{}
-Blocks hinzu: rrreee
Wobeiproxy_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. 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:
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.
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!