ฉันมีโปรแกรมที่สร้างรูปภาพเวอร์ชันที่ปรับให้เหมาะสมซึ่งอัปโหลดไปยัง /ภาพ/
โฟลเดอร์บนเว็บเซิร์ฟเวอร์ มันสำรวจโฟลเดอร์ย่อยและในแต่ละโฟลเดอร์ สร้าง .เพิ่มประสิทธิภาพ
โฟลเดอร์ที่เก็บเวอร์ชันที่ปรับให้เหมาะสม ถ้า มันมีขนาดเล็กกว่าต้นฉบับอย่างน้อยหนึ่งขนาด เป้าหมายของฉันคือการตรวจสอบว่ามีเวอร์ชันที่ปรับให้เหมาะสมหรือไม่ ให้บริการหากมี และให้บริการต้นฉบับเป็นอย่างอื่น (ในบางแง่ เช่น gzip_static
ให้บริการไฟล์เวอร์ชัน .gz หากมีอยู่)
ฉันใช้ NGINX เป็นพร็อกซีต่อหน้า Apache ดังนั้นในขณะที่ฉันเคยชินกับการจัดการปัญหาเช่นนี้โดยใช้ htaccess ฉันพยายามทำแบบเนทีฟใน NGINX เพื่อหลีกเลี่ยงเซิร์ฟเวอร์ที่ต้องส่งคำขอไปยัง Apache ใน .htaccess
ฉันสามารถทำสิ่งนี้:
RewriteCond %{REQUEST_FILENAME} ^(/images/(?:.*/)?)(.*?)$ [หรือ]
RewriteCond $1.optimized/$2 -f
RewriteRule .* $1/.optimized/$2 [L]
มีวิธีที่ดีในการจัดการสิ่งนี้โดยตรงใน NGINX หรือไม่ กรณีการใช้งานที่คล้ายกันส่วนใหญ่ที่ฉันพบจะเก็บไฟล์แคช/ไฟล์ที่ปรับให้เหมาะสมทั้งหมดไว้ในโฟลเดอร์แคชเดียว ซึ่งตรงข้ามกับโครงสร้างที่ฉันกำลังอธิบาย