तो मैं अपाचे से और Nginx पर दूर अपनी साइट से आगे बढ़ रही हैं और मुझे इस परिदृश्य में परेशानी आ रही:Nginx प्रॉक्सी फ़ाइलें करने के लिए या S3
उपयोगकर्ता एक तस्वीर अपलोड करता है। इस तस्वीर का आकार बदल गया है, और उसके बाद एस 3 की प्रतिलिपि बनाई गई है। यदि डिस्क पर उपयुक्त कमरा है (या फ़ाइल को S3 में स्थानांतरित नहीं किया जा सकता है), तो स्थानीय संस्करण रखा जाता है।
मुझे पी/निर्देशिका में पहली बार देखने के लिए इन छवियों (जैसे http://www.mysite.com/p/1_1.jpg) के लिए अनुरोध चाहिए। यदि कोई स्थानीय फ़ाइल मौजूद नहीं है, तो मैं S3 को अनुरोध प्रॉक्सी करना चाहता हूं और छवि प्रस्तुत करना चाहता हूं (लेकिन रीडायरेक्ट नहीं)।
Apache में, मैंने किया था यह इतना की तरह:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^p/([0-9]+_[0-9]+\.jpg)$ http://my_bucket.s3.amazonaws.com/$1 [P,L]
Nginx में इस व्यवहार को दोहराने के लिए मेरे प्रयास है यह:
location /p/ {
if (-e $request_filename) {
break;
}
proxy_pass http://my_bucket.s3.amazonaws.com/;
}
क्या होता है कि प्रत्येक अनुरोध अमेज़न S3 हिट करने के लिए प्रयास करता है, भले ही फ़ाइल डिस्क पर मौजूद है (और यदि यह अमेज़ॅन पर मौजूद नहीं है, तो मुझे त्रुटियां मिलती हैं।) यदि मैं proxy_pass लाइन को हटा देता हूं, तो डिस्क पर फ़ाइलों के लिए अनुरोध करें।
इसे ठीक करने के तरीके पर कोई विचार?
क्या आप virual.conf फ़ाइल साझा कर सकते हैं। – Thoman