Score:0

NGINX ไม่เปิดใช้งาน GZIP สำหรับ css แม้ว่าจะอยู่ในการกำหนดค่า

ธง in

ฉันได้สร้างไซต์สแตติกอย่างง่ายซึ่งฉันให้บริการด้วย nginx (จากนักเทียบท่า) ขณะนี้ฉันกำลังพยายามใช้แนวทางปฏิบัติที่ดีที่สุดรวมถึง gzip

ฉันใช้ตัวอย่างการกำหนดค่าที่ฉันพบทางออนไลน์เพื่อตั้งค่าการกำหนดค่าของตัวเอง Gzip ใช้ได้กับเกือบทุกประเภท ยกเว้น css...

ฉันใช้ ขด สำหรับการทดสอบ:

curl -H "ยอมรับการเข้ารหัส: gzip" -I localhost:8400 ผลิต:

HTTP/1.1 200 ตกลง
เซิร์ฟเวอร์: nginx/1.20.2
วันที่: วันพุธที่ 05 มกราคม 2022 12:35:06 GMT
ประเภทเนื้อหา: text/html
การเชื่อมต่อ: มีชีวิตอยู่
Last-Modified: พฤ. 30 ธ.ค. 2564 13:24:15 GMT
Vary: ยอมรับการเข้ารหัส
ETag: W/"61cdb2ff-ff5"
นโยบายความปลอดภัยเนื้อหา: script-src 'self' 'unsafe-inline' 'unsafe-eval' *.transistories.org; frame-src 'ตนเอง'; วัตถุ src 'ตัวเอง'
ตัวเลือก X-Frame: SAMEORIGIN
X-Content-Type-Options: ไร้สาระ
การรักษาความปลอดภัยอย่างเข้มงวดในการขนส่ง: max-age=31536000;
X-XSS-การป้องกัน: 1; โหมด = บล็อก
การเข้ารหัสเนื้อหา: gzip

ในขณะที่ curl -H "ยอมรับการเข้ารหัส: gzip" -I localhost:8400/css/main.css ผลิต:

HTTP/1.1 200 ตกลง
เซิร์ฟเวอร์: nginx/1.20.2
วันที่: วันพุธที่ 05 มกราคม 2022 12:35:02 GMT
ประเภทเนื้อหา: text/css
ความยาวเนื้อหา: 8279
การเชื่อมต่อ: มีชีวิตอยู่
Last-Modified: พุธ 05 ม.ค. 2022 10:46:33 GMT
Vary: ยอมรับการเข้ารหัส
ETag: "61d57709-2057"
หมดอายุ: วันเสาร์ที่ 29 มกราคม 2022 13:38:58 GMT
การควบคุมแคช: max-age=2073600
Pragma: สาธารณะ
การควบคุมแคช: max-age=2073600 สาธารณะ
ยอมรับช่วง: ไบต์

ไฟล์ปรับแต่งหลัก:

ผู้ใช้ nginx;
worker_processes อัตโนมัติ

error_log /var/log/nginx/error.log ประกาศ;
pid /var/run/nginx.pid;


เหตุการณ์ {
    worker_connections 1024;
}


http {
    รวม /etc/nginx/mime.types;
    แอปพลิเคชัน default_type/octet-stream;

    log_format main '$remote_addr - $remote_user [$time_local] "$request"'
                      '$สถานะ $body_bytes_sent "$http_referer"'
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log หลัก;

    ส่งไฟล์บน;
    tcp_nopush บน;

    keepalive_timeout 65;

    เปิด gzip;
    gzip_vary บน;
    gzip_proxyed ใด ๆ ;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_min_length 256;
    gzip_types
        แอปพลิเคชัน/atom+xml
        แอปพลิเคชัน/geo+json
        แอปพลิเคชัน/จาวาสคริปต์
        แอปพลิเคชัน/x-javascript
        แอปพลิเคชัน/json
        แอปพลิเคชัน/ld+json
        แอปพลิเคชัน/รายการ +json
        แอปพลิเคชัน/rdf+xml
        แอปพลิเคชัน/rss+xml
        แอปพลิเคชัน/xhtml+xml
        แอปพลิเคชัน/xml
        แบบอักษร/eot
        แบบอักษร/otf
        แบบอักษร/ttf
        รูปภาพ/svg+xml
        ข้อความ/css
        ข้อความ/จาวาสคริปต์
        ข้อความ/js
        ข้อความ/ธรรมดา
        ข้อความ/xml;
    gzip_disable "msie6";



    ปิด server_tokens;

    รวม /etc/nginx/conf.d/transistories.conf;
}

ไฟล์ปรับแต่งที่รวมอยู่:

เซิร์ฟเวอร์ {
    ฟัง 80;
    ฟัง [::]:80;
    server_name localhost;

    #charset koi8-r;
    access_log /var/log/nginx/host.access.log หลัก;

    add_header Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval' *.transistories.org; frame-src 'self'; object-src 'self'";
    add_header X-Frame-Options "SAMEORIGIN" เสมอ
    add_header X-Content-Type-Options "nosniff" เสมอ;
    add_header การขนส่งที่เข้มงวด - ความปลอดภัย "อายุสูงสุด = 31536000;" เสมอ;
    add_header X-XSS-การป้องกัน "1; mode=block";

    ตำแหน่ง ~* \.(?:ico|css|js|gif|jpe?g|png|eot|woff2?|ttf|svg)$ {
        รูท /usr/share/nginx/html;
        หมดอายุ 24d;
        add_header Pragma สาธารณะ;
        add_header แคชควบคุม "อายุสูงสุด = 2073600 สาธารณะ";
    }

    ที่ตั้ง / {
        รูท /usr/share/nginx/html;
        ดัชนี index.html;
    }

    error_page 404 /404.html;
}

ในกรณีที่มีความเกี่ยวข้อง Dockerfile ที่ฉันใช้: ไฟล์ css ถูกสร้างขึ้นจาก scss โดยใช้ node-sass

จากโหนด:current-alpine3.14 AS builder

เวิร์กดีอาร์ /usr/src/app

แพ็คเกจ COPY*.json ./

ติดตั้ง RUN npm

คัดลอกสินทรัพย์ ./assets

คัดลอก gulpfile.js

คัดลอก src./src

RUN npm รัน build:prod

RUN npm เรียกใช้แผนผังเว็บไซต์

RUN npm เรียกใช้ rss

จาก nginx: ล่าสุด

สำเนา --from=builder /usr/src/app/build /usr/share/nginx/html

คัดลอก nginx/nginx.conf /etc/nginx
คัดลอก nginx/conf.d /etc/nginx/conf.d

มีความคิดใดบ้างว่าทำไมสิ่งนี้ถึงเกิดขึ้นได้ และฉันจะแก้ปัญหานี้ได้อย่างไร ขอบคุณล่วงหน้า!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา