Score:4

การเพิ่มบล็อกตำแหน่งไปยังไฟล์แคชทำให้ไฟล์เหล่านั้นส่งคืน 404 ใน Nginx

ธง in

ฉันต้องการแคชไฟล์คงที่โดยใช้ Nginx แต่ฉันไม่สามารถทำให้มันใช้งานได้

นี่เป็นของฉัน nginx.conf:

ผู้ใช้ www-data;
worker_processes อัตโนมัติ
pid /run/nginx.pid;
รวม /etc/nginx/modules-enabled/*.conf;

เหตุการณ์ {
    worker_connections 768;
    #multi_accept บน;
}


http {

    #GZIP
    เปิด gzip;
    gzip_vary บน;
    gzip_proxyed ใด ๆ ;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_min_length 256;
    แอปพลิเคชัน gzip_types/แอปพลิเคชัน javascript/แอปพลิเคชัน json/แอปพลิเคชัน ld+json/แบบอักษร xml/แบบอักษร eot/แบบอักษร otf/ข้อความ ttf/ข้อความ css/ข้อความจาวาสคริปต์/ข้อความธรรมดา/xml;

    # เซิร์ฟเวอร์
    เซิร์ฟเวอร์ {
            ฟัง 80;

        server_name example.com;
        ถ้า ($http_host ~* ^www\.(.*)$ )
        {
            ส่งคืน 301 https://$1$request_uri;
        }

        ส่งคืน 301 https://$http_host$request_uri;
    }
    เซิร์ฟเวอร์ {
        ฟัง 443 ssl;

        ถ้า ($http_host ~* ^www\.(.*)$ )
        {
            ส่งคืน 301 $scheme://$1$request_uri;
        }


        #SSL
        ssl_certificate /root/.acme.sh/example.com/fullchain.cer;
        ssl_certificate_key /root/.acme.sh/example.com/example.com.key;

        server_name example.com;

        # ส่งทราฟฟิกทั้งหมดไปยังเว็บแอปพลิเคชันของฉัน
        ที่ตั้ง / {
            proxy_set_header โฮสต์ $host;
            proxy_pass http://localhost:8080;
        }

        #เบราว์เซอร์แคช
        ตำแหน่ง ~* \.(js|css)$ {
            หมดอายุ 180d;
            add_header Pragma "สาธารณะ";
            add_header แคชควบคุม "สาธารณะ";
        }
        ตำแหน่ง ~* \.(jpg|jpeg|png|webp|woff|woff2|ttf)$ {
            หมดอายุ 365d;
            add_header Pragma "สาธารณะ";
            add_header แคชควบคุม "สาธารณะ";
        }

    }
}

ปัญหาอยู่ที่ส่วน "การแคชเบราว์เซอร์" เมื่อเปิดใช้งานบล็อกโค้ดนี้ เว็บไซต์ของฉันโหลด แต่ไฟล์ css, ไฟล์จาวาสคริปต์ และรูปภาพทั้งหมดส่งคืน 404 มันเหมือนกับว่าไฟล์เหล่านั้นไม่สนใจฉัน ที่ตั้ง /.

ฉันสามารถแก้ไขปัญหานี้ได้โดยการคัดลอก/วาง

proxy_set_header โฮสต์ $host;
proxy_pass http://localhost:8080;

ในทั้งหมดของฉัน ที่ตั้ง-บล็อก แต่นั่นไม่ได้สวยงามนักและทำให้เว็บไซต์ของฉันช้าลงมาก...

ฉันยังพยายามย้ายทั้งสอง ที่ตั้ง-บล็อกสำหรับเบราว์เซอร์ที่แคชในบล็อก ที่ตั้ง \ ดังนั้นคนหลังจะทำหน้าที่เป็น 'ผู้ปกครอง' แต่นั่นไม่ได้ทำให้พฤติกรรมของรูปภาพ ฯลฯ กลับมา 404

ฉันจะกำหนดค่าการแคชไฟล์สแตติกใน Nginx ได้อย่างไร

us flag
ฉันได้ให้คำตอบในคำถามเดิมของคุณแล้ว

โพสต์คำตอบ

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