मेरे पास इस बात पर टिप्पणी करने के लिए पर्याप्त प्रतिष्ठा नहीं है कि स्वीकृत जवाब फाइलों को क्यों नहीं दिखाएगा, लेकिन मुझे यह समझ में आया और वह मदद करना चाहेंगे!
लघु संस्करण:
सुनिश्चित करें कि यदि आपके पास एक वैश्विक सेट नहीं है, तो आप छवियों पर अपने स्थान ब्लॉक के लिए एक रूट निर्देशिका निर्दिष्ट करें!
नीचे लंबा संस्करण:
सबसे पहले, इस समाधान को लागू करने की मेरी विधि वास्तव में इस उत्तर के समान थी , जहां आप नियम लिखते हैं (जैसा कि स्वीकृत उत्तर में है):
location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
expires 30d;
add_header Pragma public;
add_header Cache-Control "public";
}
एक फ़ाइल में img-cache.conf
और फिर उस फ़ाइल को अपने server {...}
निर्देश में शामिल करें ।
मेरे साइट-उपलब्ध फ़ोल्डर में somesite.com का मेरा उदाहरण:
#Image Caching
include /etc/nginx/conf/img-cache.conf;
इस तरह आप अपने द्वारा चलाए जा रहे कई साइटों पर छवि कैशिंग स्थान ब्लॉक जोड़ सकते हैं।
दूसरी बात, मेरे पास एक ऐसी स्थिति है जहां मेरे / var / www / में दो फ़ोल्डर हैं जिन्हें मैं public_html - सुरक्षित और प्रशिक्षण के रूप में अनुमति देता हूं, इसलिए मुझे अपनी साइट के सर्वर निर्देश इन सिंगल्स को एकल करने के लिए विशिष्ट स्थान ब्लॉक करना होगा।
जैसे, मेरे पास वैश्विक रूट डायरेक्टरी सेट नहीं है ।
इसलिए जब आप अपनी छवि का स्थान ब्लॉक करते हैं, तो हो सकता है कि आप उन्हें एक रूट डायरेक्टरी प्रदान नहीं कर रहे हों, जिसमें से छवियों को देख सकें !
मेरा समाधान तब था:
location ~ ^/training.+\.(?:ico|css|js|gif|jpe?g|png)$ {
root /var/www/;
expires 7d;
add_header Pragma public;
add_header Cache-Control "public";
try_files $uri 404;
}
location ~ ^/.+\.(?:ico|css|js|gif|jpe?g|png)$ {
root /var/www/secure;
expires 7d;
add_header Pragma public;
add_header Cache-Control "public";
try_files $uri 404;
}