ฉันจะแสดงไฟล์ก่อน gzipped ด้วย nginx เพื่อให้ไฟล์เหล่านั้นแสดงเป็นข้อความในเบราว์เซอร์ได้อย่างไร


17

ฉันมีไฟล์บันทึก gzipped มากมายที่ฉันต้องการให้บริการด้วย nginx ฉันต้องการให้พวกเขาได้รับบริการในลักษณะที่เบราว์เซอร์นั้นพองตัวโดยอัตโนมัติ ฉันคิดว่านั่นหมายความว่าฉันต้องการ nginx เพื่อส่งไฟล์เป็น. gz ด้วยข้อความ / ส่วนหัวธรรมดา ซึ่งสามารถทำได้ใน apache กับสิ่งที่ชอบ:

<FilesMatch *.gz>
    ForceType text/plain
</FilesMatch>

คำตอบ:


24

คุณต้องการHttpGzipStaticโมดูลสำหรับสิ่งนี้ ใส่gzip_static on;ในการกำหนดค่าของคุณและสร้าง.gzไฟล์ของคุณ คุณจะต้องเก็บทั้งซิปและไฟล์ต้นฉบับไว้จากนั้นคุณสามารถร้องขอตัวอย่างเช่น/css.cssและให้บริการซิป/css.css.gz


หมายเหตุเล็กน้อยหนึ่ง: ขอแนะนำให้แก้ไขเวลาของทั้งสองไฟล์ (mtime) เหมือนกัน
Alexander Azarov

2
และคุณสามารถทดสอบการทำงานกับcurl --header "Accept-Encoding: gzip" -I your_urlและไม่มี - ส่วนหัวเพื่อตรวจสอบว่ายังคงให้บริการไฟล์ที่ไม่มีการบีบอัดหากจำเป็น
ทอม

โดยทั่วไปวิธีการนี้ใช้ไม่ได้กับดัชนีเช่น index.html.gz หากคุณเพิ่มเข้าไปในรายการดัชนีโดยใช้ "index index.html.gz" มันจะทำหน้าที่เป็นการดาวน์โหลดเมื่อคุณพยายามเข้าถึง "$ url / " ฉันยังคงมองหาวิธีแก้ปัญหาที่จะทำให้สามารถเรียกดูดัชนี gzipped ได้เช่นกัน
sorin

ไฟล์ต้นฉบับไม่จำเป็นเว้นแต่คุณจะใช้mailman.nginx.org/pipermail/nginx/2012-June/034102.htmltry_files ฉันลองด้วยgunzip onและtry_files serverfault.com/questions/571733/…
rofrol
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.