Jak podawać wstępnie spakowane pliki za pomocą nginx, aby były wyświetlane jako tekst w przeglądarce?

17

Mam kilka spakowanych plików dziennika, które chciałbym udostępnić z Nginx. Chcę, aby były one podawane w taki sposób, aby były automatycznie zawyżane przez przeglądarkę. Zakładam, że oznacza to, że potrzebuję nginx, aby wysłać pliki jako .gz z nagłówkiem tekstowym / zwykłym. Można to zrobić w apache za pomocą czegoś takiego:

<FilesMatch *.gz>
    ForceType text/plain
</FilesMatch>
Ben
źródło

Odpowiedzi:

24

Potrzebujesz HttpGzipStaticdo tego modułu. Wprowadź gzip_static on;swoją konfigurację i utwórz .gzpliki. Trzeba będzie zachować zarówno spakowany i oryginalnego pliku, możesz zażądać, na przykład, /css.cssi być służył spakowany/css.css.gz

adamse
źródło
Jedna drobna uwaga: sugeruje się, że czasy modyfikacji obu plików (mtime) są takie same.
Alexander Azarov
2
I możesz przetestować, czy działa curl --header "Accept-Encoding: gzip" -I your_url, i bez --header, aby sprawdzić, czy nadal obsługuje nieskompresowany plik, jeśli to konieczne.
Tom
Najwyraźniej to podejście NIE działa z indeksami takimi jak index.html.gz, jeśli dodasz go do listy indeksów za pomocą „index index.html.gz”, będzie on służył jako pobieranie podczas próby uzyskania dostępu do „$ url / „. Wciąż szukam rozwiązania, które sprawiłoby, że indeksy gzip również można przeglądać.
sorin
oryginalny plik nie jest potrzebny, chyba że używasz try_files mailman.nginx.org/pipermail/nginx/2012-June/034102.html . Próbowałem z gunzip oni try_files serverfault.com/questions/571733/…
rofrol