Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Nginx-Cache-Bereinigungskonfiguration, um den Website-Inhalt auf dem neuesten Stand zu halten

Nginx-Cache-Bereinigungskonfiguration, um den Website-Inhalt auf dem neuesten Stand zu halten

王林
王林Original
2023-07-05 22:28:353431Durchsuche

Nginx-Cache-Bereinigungskonfiguration, um Website-Inhalte auf dem neuesten Stand zu halten

Beim Erstellen einer Website verwenden wir häufig Nginx als Reverse-Proxy-Server, um den Website-Zugriff zu beschleunigen und statische Dateien zwischenzuspeichern. Wenn wir jedoch Website-Inhalte aktualisieren, müssen wir den Cache von Nginx rechtzeitig leeren, damit Benutzer weiterhin auf die neuesten Inhalte zugreifen können. In diesem Artikel erfahren Sie, wie Sie die Nginx-Cache-Bereinigung konfigurieren, um den Website-Inhalt auf dem neuesten Stand zu halten.

1. Konfigurieren Sie den Cache-Pfad

Zuerst müssen wir den Cache-Pfad von Nginx konfigurieren. Öffnen Sie die Nginx-Konfigurationsdatei, normalerweise /etc/nginx/nginx.conf oder /etc/nginx/conf.d/default.conf, und suchen Sie nach http die folgende Konfiguration hinzu: <code>/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf,找到http段,添加以下配置:

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

    server {
        ...
    }
    ...
}

上述配置将缓存文件存储在/var/cache/nginx目录下,并设置了缓存大小为10GB,缓存过期时间为60分钟。需要根据实际情况进行调整。

二、配置缓存清理接口

接下来,我们需要配置一个接口用于清理Nginx的缓存。

在Nginx的配置文件中,找到需要清理缓存的地方,比如一个POST请求:

http {
    ...
    server {
        ...
        location /update {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;

            # 清理缓存
            proxy_cache_purge my_cache GET POST;
        }
        ...
    }
    ...
}

上述配置中,location /update用于匹配需要更新的URL路径,比如/updateproxy_cache_purge指令用于清理缓存,参数GET POST表示同时清理GET和POST请求的缓存。可以根据实际情况进行调整。

三、安装Purge模块

Nginx的默认安装中并不包含proxy_cache_purge模块,我们需要手动安装。

使用以下命令安装Nginx的模块管理工具:

yum install -y yum-utils

使用以下命令添加Nginx的扩展源:

yum-config-manager --add-repo=https://nginx.org/packages/centos/7/x86_64/

最后,使用以下命令安装Nginx的nginx-module-cache-purge模块:

yum install -y nginx-module-cache-purge

四、重启Nginx服务

完成以上配置后,需要重启Nginx服务使配置生效。使用以下命令重启Nginx:

systemctl restart nginx

五、清理缓存的方式

现在,我们可以通过访问清理缓存的接口来实现清理Nginx的缓存。比如,如果我们要清理/update路径的缓存,可以使用以下命令:

curl -X POST http://yourdomain.com/update

这样就会触发Nginx清理/update路径下的缓存。

六、自动清理缓存

为了保证网站内容的更新,我们可以通过定期清理缓存的方式,自动保持Nginx中的缓存与实际网站内容的一致性。

我们可以使用定时任务工具(如Cron)来定期执行清理缓存的命令。比如,设置每天凌晨4点清理一次缓存,可以使用以下命令编辑定时任务:

crontab -e

然后添加以下一行命令:

0 4 * * * curl -X POST http://yourdomain.com/update >> /tmp/nginx_cache_clear.log 2>&1

保存并退出编辑器,这样每天凌晨4点就会触发一次清理缓存的操作,并将执行结果保存在/tmp/nginx_cache_clear.logrrreee

Die obige Konfiguration speichert Cache-Dateien im Verzeichnis /var/cache/nginx und legt die Cache-Größe auf 10 GB und die Cache-Ablaufzeit auf 60 fest Minuten. Muss entsprechend der tatsächlichen Situation angepasst werden.

2. Konfigurieren Sie die Cache-Reinigungsschnittstelle

Als nächstes müssen wir eine Schnittstelle zum Bereinigen des Nginx-Cache konfigurieren. 🎜🎜Suchen Sie in der Nginx-Konfigurationsdatei die Stelle, an der der Cache geleert werden muss, z. B. eine POST-Anfrage: 🎜rrreee🎜In der obigen Konfiguration wird location /update verwendet, um den URL-Pfad abzugleichen das aktualisiert werden muss, wie zum Beispiel /update. Die Direktive proxy_cache_purge wird zum Löschen des Caches verwendet, und der Parameter GET POST bedeutet, dass der Cache gleichzeitig von GET- und POST-Anfragen geleert wird. Es kann entsprechend der tatsächlichen Situation angepasst werden. 🎜🎜3. Installieren Sie das Purge-Modul 🎜🎜Die Standardinstallation von Nginx beinhaltet nicht das proxy_cache_purge-Modul, wir müssen es manuell installieren. 🎜🎜Verwenden Sie den folgenden Befehl, um das Modulverwaltungstool von Nginx zu installieren: 🎜rrreee🎜Verwenden Sie den folgenden Befehl, um die Erweiterungsquelle von Nginx hinzuzufügen: 🎜rrreee🎜Abschließend verwenden Sie den folgenden Befehl, um Nginxs nginx-module-cache-purge zu installieren Code> Modul:🎜rrreee🎜4. Starten Sie den Nginx-Dienst neu🎜🎜Nach Abschluss der obigen Konfiguration müssen Sie den Nginx-Dienst neu starten, damit die Konfiguration wirksam wird. Verwenden Sie den folgenden Befehl, um Nginx neu zu starten: 🎜rrreee🎜 5. So leeren Sie den Cache 🎜🎜 Jetzt können wir den Nginx-Cache bereinigen, indem wir auf die Clean-Cache-Schnittstelle zugreifen. Wenn wir beispielsweise den Cache im Pfad <code>/update leeren möchten, können wir den folgenden Befehl verwenden: 🎜rrreee🎜Dadurch wird Nginx veranlasst, den Cache im Pfad /update Pfad. 🎜🎜6. Den Cache automatisch leeren🎜🎜Um sicherzustellen, dass der Website-Inhalt aktualisiert wird, können wir die Konsistenz zwischen dem Cache in Nginx und dem tatsächlichen Website-Inhalt automatisch aufrechterhalten, indem wir den Cache regelmäßig bereinigen. 🎜🎜Wir können Tools für geplante Aufgaben (wie Cron) verwenden, um regelmäßig Befehle zum Löschen des Caches auszuführen. Um beispielsweise festzulegen, dass der Cache jeden Tag um 4 Uhr morgens geleert wird, können Sie den folgenden Befehl verwenden, um die geplante Aufgabe zu bearbeiten: 🎜rrreee🎜 Fügen Sie dann die folgende Befehlszeile hinzu: 🎜rrreee🎜 Speichern und beenden Sie den Editor, damit Der Cache-Löschvorgang wird jeden Tag um 4 Uhr morgens ausgelöst und die Ausführungsergebnisse werden in der Datei <code>/tmp/nginx_cache_clear.log gespeichert. 🎜🎜Zusammenfassung🎜🎜Durch die obige Konfiguration können wir den Nginx-Cache automatisch bereinigen und den Inhalt der Website auf dem neuesten Stand halten. Gleichzeitig können wir Cache-Pfade und Reinigungsmethoden je nach Bedarf flexibel anpassen, um sie an unterschiedliche Website-Anforderungen anzupassen. 🎜

Das obige ist der detaillierte Inhalt vonNginx-Cache-Bereinigungskonfiguration, um den Website-Inhalt auf dem neuesten Stand zu halten. 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