location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
if (-f $request_filename) {
access_log off;
expires 30d;
break;
}
if (!-f $request_filename) {
proxy_pass http://127.0.0.1:8080; # backend server listening
break;
}
}
ऊपर सभी मौजूदा फ़ाइलों को सीधे Nginx (जैसे Nginx सिर्फ PHP स्रोत कोड प्रदर्शित करता है) का उपयोग करेगा, अन्यथा अपाचे के लिए एक अनुरोध को अग्रेषित करें। मुझे नियम से * .php फ़ाइलों को बाहर करने की आवश्यकता है ताकि * .php के लिए अनुरोध भी अपाचे के लिए पारित हो जाएं और संसाधित हो जाएं।
मैं चाहता हूं कि सभी गतिशील सामानों को संसाधित करने के लिए Nginx सभी स्थिर फ़ाइलों और Apache को संभाल सके।
संपादित करें: सफेद सूची दृष्टिकोण है, लेकिन यह बहुत सुंदर नहीं है, उन सभी एक्सटेंशनों को देखें, मुझे यह नहीं चाहिए।
location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {
access_log off;
expires 30d;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080;
}
EDIT 2: Nginx के नए संस्करणों के try_files
बजाय http://wiki.nginx.org/HttpCoreModule#try_files का उपयोग करें