Nginx Expires Epoch Header selektiv festlegen

Nginx Expires Epoch Header selektiv festlegen

Ich habe einen Ordner mit Bildern auf meinem Server, der sowohl für die Bedienung einer mobilen App über ein CDN als auch für die Arbeit mit einer Backend-Webanwendung verwendet wird, die zur Verwaltung der an die App gelieferten Inhalte verwendet wird. Für Letzteres – die Backend-Webanwendung – möchte ich sicherstellen, dass die aus dem betreffenden Ordner gelieferten Bilder nicht vom Browser zwischengespeichert werden, damit ich aktualisierte Versionen in der Backend-App anzeigen kann, sobald sie von ihrem Autor aktualisiert wurden. Das CDN ruft dieselben Bilder für die Bereitstellung an die mobile App ab und hat seine Aktualisierungseinstellungen auf 30 Minuten eingestellt, damit es keine Bilder mit veraltetem Inhalt liefert.

Meine Frage: Wie kann ich Nginx so konfigurieren, dass es den expires epochHeader nur für Anfragen einfügt, die von der Webanwendung stammen? Ein Teil der Antwort auf diese Frage ist indieser SO-Thread. Gibt es eine Möglichkeit, die dort vorgeschlagene Lösung so zu ändern, dass sie den Referrer prüft, bevor der Header eingefügt wird? So werden beispielsweise alle Anfragen, die von stammen, https://example.com/backofficemit dem Header beantwortet, expires epochwährend dies bei anderen - z. B. bei den CDN-Pull-Requests - nicht der Fall ist.

Antwort1

Ein einfaches ifmüsste hier genügen:

server {

    location ... {

        if ($http_referer ~* ^https://example.com/backoffice) {
            expires epoch;
        }

    }

}

Bedenken Sie, dass es im AllgemeinenerheblichEs ist vorzuziehen, dass Ihre Webanwendung Caching-Entscheidungen trifft und mit den entsprechenden Anweisungen reagiert.

verwandte Informationen