2010-09-13 14 views
7

मैं स्थानीय रूप से एक वेबसाइट चला रहा हूं, सभी ट्रैफिक एनजीएनएक्स के माध्यम से गुजरता है जो तब PHP पृष्ठों को अपाचे में अनुरोध भेजता है और स्थिर फाइलों की सेवा करता है। क्रोम, सफारी, आईई, आदि में पूरी तरह से काम करता हैNginx 502 केवल फ़ायरफ़ॉक्स में खराब गेटवे त्रुटि

बहरहाल, जब भी मैं Firefox में वेबसाइट खोलने मैं निम्नलिखित त्रुटि मिलती है: यदि मैं संचय और कुकी को साफ

502 Bad Gateway 
nginx/0.7.65 

, और फिर फ़ायर्फ़ॉक्स को पुनः आरंभ, मैं त्रुटि रिटर्न से पहले एक या दो बार साइट लोड करने में सक्षम हूं। मैंने फ़ायरफ़ॉक्स 3.6 और 3.5 दोनों की कोशिश की है और दोनों एक ही समस्या है।

worker_processes 2; 

events { 
    worker_connections 1024; 
} 


http { 

server { 
    listen  80; 
    server_name local.mysite.amc; 
    root   /Users/joshmaker/Sites/mysite; 

    error_log /var/log/nginx/error.log; 
    access_log /var/log/nginx/access.log; 

    location/{ 
     proxy_set_header Host $host; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_pass http://local.mysite.amc:8080; 
    } 

    include /opt/local/etc/nginx/rewrite.txt; 
} 
server { 
    include /opt/local/etc/nginx/mime.types; 

    listen  80; 
    server_name local.static.mysite.amc; 
    root   /Users/joshmaker/Sites/mysite; 

    error_log /var/log/nginx/error.log; 
    access_log /var/log/nginx/access.log; 
} 
} 

और यहाँ त्रुटियों कि फ़ायरफ़ॉक्स मेरी error.log फ़ाइल में उत्पन्न करता है:

यहाँ क्या मेरी Nginx config लगता है कि है

[error] 11013#0: *26 kevent() reported that connect() failed (61: Connection refused) while connecting to upstream  
[error] 11013#0: *30 upstream sent too big header while reading response header from upstream 
[error] 11013#0: *30 no live upstreams while connecting to upstream 

मैं एक नुकसान में पूरी तरह से कर रहा हूँ क्यों एक ब्राउज़र एक सर्वर त्रुटि का कारण बन जाएगा। क्या कोई मदद कर सकता है?

उत्तर

11

मुझे लगता है कि मेरी समस्या को ठीक करने के लिए एक काम मिल गया है। कुछ अतिरिक्त Google अनुसंधान के बाद, मैं अपने Nginx config के लिए निम्नलिखित लाइनों कहा:

proxy_buffers 8 16k; 
proxy_buffer_size 32k; 

हालांकि, मैं अब भी नहीं जानता क्यों इस काम किया है और यही कारण है कि केवल फ़ायरफ़ॉक्स समस्याओं के लिए लग रहा था। अगर कोई इस पर प्रकाश डाल सकता है, या बेहतर समाधान प्रदान कर सकता है, तो इसकी सराहना की जाएगी!

+2

आप फ़ायरपीएचपी – noah

5

यदि आपके पास firePHP अक्षम है। बड़े हेडर समस्याओं का कारण बनते हैं जबकि php के साथ nginx comunication।

0

खुला /etc/nginx/nginx.conf और http अनुभाग में निम्न पंक्तियां जोड़ें:

fastcgi_buffers 8 16k; 
fastcgi_buffer_size 32k; 

इस सुधार में एक सीआई वेब अनुप्रयोग में मेरे लिए काम किया। http://www.adminsehow.com/2012/01/fix-nginx-502-bad-gateway-error/

3

पर अपने और प्रॉक्सी बफर के आकार को बढ़ाने से यह समस्या हल हो जाती है। फ़ायरफ़ॉक्स बड़ी कुकीज़ (प्रत्येक 4k तक) की अनुमति देता है जो प्रत्येक अनुरोध से जुड़े होते हैं। Nginx डिफ़ॉल्ट कॉन्फ़िगरेशन में छोटे बफर होते हैं (केवल 4k)। यदि आपका ट्रैफ़िक बड़ी कुकीज़ का उपयोग करता है, तो आपको अपने nginx त्रुटि लॉग में "प्रतिक्रिया शीर्षलेख पढ़ने के दौरान अपस्ट्रीम बहुत बड़ा हेडर भेजा गया" त्रुटि दिखाई देगी, और Nginx क्लाइंट को http 502 त्रुटि वापस कर देगा। क्या हुआ है अनुरोध के विश्लेषण और प्रसंस्करण करते समय Nginx बफर अंतरिक्ष से बाहर भाग गया।

इस का समाधान करने के लिए, अपने nginx.conf फ़ाइल

proxy_buffers 8 16k बदल; proxy_buffer_size 32k;

-या-

fastcgi_buffers 8 16k; fastcgi_buffer_size 32k;

+0

'fastcgi_buffers 8 16k का उपयोग कर रहे हैं; fastcgi_buffer_size 32k; 'मेरे लिए चाल थी –