ขณะนี้ฉันกำลังพยายามตั้งค่า Nginx เพื่อให้บริการไฟล์คงที่ทั้งหมดของฉัน เนื่องจากพวกเขาจะไม่ถูกเปลี่ยนแปลงบ่อยมากเลยฉันต้องการให้เราโมดูล gzip_static เพื่อให้ฉันสามารถคัดลอกไฟล์ gzip ล่วงหน้าเพื่อประหยัดเวลาของซีพียูและให้การบีบอัดที่ดีขึ้น
ฉันรวบรวม Nginx ด้วย--with-http_gzip_static_module
และตั้งค่าเพื่อให้บริการไฟล์สแตติกของฉันโดยไม่มีปัญหา ฉันต้องการที่จะทดสอบและตรวจสอบให้แน่ใจว่า gzipping คงเป็นจริงการทำงานดังนั้นฉันทำสองไฟล์และtest.txt
test.txt.gz
บรรทัดแรกของแต่ละไฟล์บอกว่าพวกเขาเป็น gzipped หรือไม่แล้วมีบรรทัดใหม่และอักขระสุ่ม 256 ตัว (แตกต่างกันระหว่างสองไฟล์)
ฉันได้อ่านว่าเวลาในการแก้ไขไฟล์และไฟล์ gzipped ควรเท่ากันและฉันได้ลองทั้งสองอย่างต่อไปนี้:
touch test.*
touch -r test.txt test.txt.gx
บนเครื่องของฉันฉันกำลังทดสอบกับขด:
curl $URL/test.txt
ใช้งานได้ดีฉันกลับเวอร์ชันที่ฉันไม่ได้บีบอัดไว้ล่วงหน้า แต่เมื่อฉันทำสิ่งนี้:
curl -H "Accept-Encoding: gzip" $URL/test.txt | gunzip
ฉันยังได้รับกลับมารุ่นผมไม่ได้ precompress ฉันลองตั้งค่าgzip off
ของฉันnginx.conf
แต่ก็ไม่ได้สร้างความแตกต่าง ฉันได้รวบรวม Nginx อีกครั้งด้วย--without-http_gzip_module
และดูเหมือนว่าจะไม่สร้างความแตกต่างเช่นกัน Nginx ยังคงเก็บสิ่งต่าง ๆ ไว้ในทันที
ฉันค่อนข้างใหม่กับ Nginx แต่ฉันกำลังขาดทุนอยู่ที่นี่
นี่คือผลลัพธ์ของ ./nginx -V
built by gcc 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC)
configure arguments: --sbin-path=$SOMEPATH/nginx --prefix=$SOMEPATH --user=$ME --group=$MYGROUP --with-http_gzip_static_module --without-http_gzip_module
และนี่คือของฉัน nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
error_log logs/error.log;
pid logs/nginx.pid;
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
gzip_static on;
sendfile on;
keepalive_timeout 65;
access_log logs/access.log;
server {
listen XXXX;
server_name foo.bar.com;
location / {
root html;
}
error_page 404 404.html;
error_page 500 502 503 504 50x.html;
}
}
ความช่วยเหลือใด ๆ ที่ชื่นชมมาก!