मैं आमतौर पर इसे mod_rewrite के साथ देखता हूं:
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://app_cluster%{REQUEST_URI} [P,QSA,L]
इसका अर्थ है "यदि फ़ाइल फ़ाइल सिस्टम पर मौजूद नहीं है, तो इसे मेरे mod_proxy_balancer क्लस्टर के माध्यम से प्रॉक्सी करें।" अन्यथा, यदि फ़ाइल फ़ाइल सिस्टम पर मौजूद है, तो यह बस अपाचे द्वारा DocumentRoot
आपके वर्चुअलाइजहोस्ट में परिभाषित के सापेक्ष दिया जाता है ।
लेकिन यह मेरा पसंदीदा तरीका नहीं है, ज्यादातर इसलिए कि इसे stat
अनुरोध के अनुसार सिस्टम कॉल की आवश्यकता होगी ।
Mod_proxy के साथ, आप उपयोग कर सकते हैं ProxyPassMatch
यदि आपके पास Apache का नया पर्याप्त संस्करण है ( प्रलेखन देखें )। जैसे कि:
ProxyPassMatch \.(gif|jpe?g|css|js)$ !
जो उपयोग करता है! इंगित करने के लिए अपाचे को उस नियमित अभिव्यक्ति से मेल खाते प्रॉक्सी अनुरोध नहीं करना चाहिए ।
यदि आप Apache के पुराने संस्करण का उपयोग कर रहे हैं, तो आपके पास ProxyPass
निर्देश उपलब्ध होगा , लेकिन यह केवल URI उपसर्गों से मेल खाता है (यह मेरी वर्तमान पसंदीदा विधि है):
ProxyPass /images !
ProxyPass /stylesheets !
बेशक, अगर आपको ऊपर बताए अनुसार नियमित रूप से अभिव्यक्ति मिलान करना चाहिए, तो आप केवल उस mod_rewrite नियम को संशोधित कर सकते हैं जिसे मैंने शीर्ष पर पोस्ट किया था जिसके खिलाफ मैच को नकारना था %{REQUEST_URI}
।
उम्मीद है की वो मदद करदे!