2012-10-01 12 views
8

मुझे लगातार 504 गेटवे त्रुटियां मिल रही हैं जब मेरी PHP स्क्रिप्ट 60 सेकंड से अधिक समय तक चलने की आवश्यकता है।504 गेटवे टाइम-आउट मीडिया मंदिर

मैं एक समर्पित सर्वर पर मीडिया मंदिर पर हूं। मैंने मीडिया मंदिर से संपर्क किया है और वे सहायक रहे हैं लेकिन उनके किसी भी सुझाव के लिए मेरे लिए काम नहीं लग रहा है, मुझे इस फाइल को संपादित करने के लिए कहा गया था।

/etc/httpd/conf.d/fcgid.conf

मैं करने के लिए

नीचे
LoadModule fcgid_module modules/mod_fcgid.so 

<IfModule mod_fcgid.c> 

<IfModule !mod_fastcgi.c> 
    AddHandler fcgid-script fcg fcgi fpl 
</IfModule> 

    FcgidIPCDir /var/run/mod_fcgid/sock 
    FcgidProcessTableFile /var/run/mod_fcgid/fcgid_shm 
    FcgidIdleTimeout 300 
    FcgidMaxRequestLen 1073741824 
    FcgidProcessLifeTime 10000 
    FcgidMaxProcesses 64 
    FcgidMaxProcessesPerClass 15 
    FcgidMinProcessesPerClass 0 
    FcgidConnectTimeout 600 
    FcgidIOTimeout 600 
    FcgidInitialEnv RAILS_ENV production 
    FcgidIdleScanInterval 600 

</IfModule> 
तो

मैं के रूप में मैं कर सकता हूँ के रूप में ज्यादा अधिकतम सब कुछ करने की कोशिश की है, जो इस परीक्षण करने के लिए मैं कर रहा हूँ बस नीचे दिए गए समारोह को चला रहा है।

function test504(){ 
     @set_time_limit(0); 
     sleep(60); 
     echo "true"; 
    } 

नींद 60 सेकंड नीचे किसी भी कीमत पर काम करेंगे सच लौटने लेकिन 60 पर मैं 504 प्रवेश द्वार त्रुटि मिलती है।

मेरे phpinfo(); आउटपुट

max_execution_time 600 
max_input_time 180 

मैं इस fastcgi_connect_timeout बढ़ाने पर कुछ पोस्ट को देखा है लेकिन जहां मीडिया मंदिर पर इस खोजने के लिए पता नहीं है।

किसी को भी मदद कर सकता हूँ धन्यवाद

अपडेट अभी CANT ठीक इस

समर्थन मैं मैं nginx.conf संपादित करने की आवश्यकता कहा गया है के साथ बातचीत कर के बाद? और इस पोस्ट http://blog.secaserver.com/2011/10/nginx-gateway-time-out/

करने के लिए निर्देशित नहीं कर सकते मेरी होस्टिंग पर कोई भी मान ठीक किया गया था। client_header_timeout client_body_timeout send_timeout fastcgi_read_timeout

मेरी nginx.conf फ़ाइल इस

#error_log /var/log/nginx/error.log info; 

#pid  /var/run/nginx.pid; 


events { 
    worker_connections 1024; 
} 


http { 
    include  mime.types; 
    default_type application/octet-stream; 

    #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
    #     '$status $body_bytes_sent "$http_referer" ' 
    #     '"$http_user_agent" "$http_x_forwarded_for"'; 

    #access_log /var/log/nginx/access.log main; 

    sendfile  on; 
    #tcp_nopush  on; 
    #keepalive_timeout 0; 
    keepalive_timeout 120; 
    #tcp_nodelay  on; 

    #gzip on; 
    #gzip_disable "MSIE [1-6]\.(?!.*SV1)"; 

    server_tokens off; 

    include /etc/nginx/conf.d/*.conf; 
} 

यह मुझे पागल किसी भी सुझाव गाड़ी चला रहा है की तरह लग रहा ???

अद्यतन मैं के बाद सिर में दर्द के बहुत सारे कैसे मैं इस यहाँ तय पर एक ब्लॉग पोस्ट जोड़ा यह अंत में सॉर्ट पाने में कामयाब रहे। http://devsforrest.com/116/boost-settings-on-media-temple-for-maximum-settings

आशा इस किसी

+1

मुझे लगता है कि यह एक नई सेटिंग है क्योंकि मुझे अपने पुराने सर्वरों में कभी समस्या नहीं हुई है, लेकिन मेरे पास एक नया सर्वर चालू है और इसमें भाग गया। आपकी पोस्ट ने वास्तव में बहुत मदद की। मेरा ऐप अपाचे मॉड्यूल मोड में चल रहा है और यह अभी भी समस्या को हल करता है। वास्तव में सहायक! – David

+1

अरे @ user1503606 - आपका अंतिम अपडेट काम करता है! इसे अपने उत्तर के रूप में पोस्ट करें और समाधान खोजने के लिए क्रेडिट प्राप्त करें। – squarecandy

+0

मैं आपको 200 से अधिक के लिए स्क्रिप्ट चलाने की आवश्यकता को हटाने के लिए अपने एप्लिकेशन को दोबारा करने के लिए सुझाव देता हूं। आपको पृष्ठभूमि में कुछ भारी तर्क को स्थानांतरित करने की आवश्यकता होगी। निम्न में से किसी भी तकनीक का उपयोग करने में आपकी सहायता के लिए: AJAX, संदेश कतार, memcache, ध्वज फ़ाइलें। –

उत्तर

3

मैं भी एक ही मुद्दा था और मैं संपादन nginx.conf फ़ाइल से इसे हल मदद करता है। ज्यादातर मामलों में, यह nginx.conf में send_timeout निर्देश को जोड़कर/बढ़ाकर तय किया जा सकता है।

अपने nginx.conf फ़ाइल (आमतौर पर /usr/local/nginx/nginx.conf या कभी कभी /etc/nginx/sites-available/default पर स्थित), नैनो या किसी अन्य पाठ संपादक का उपयोग इसे खोलने, और http {के बीच निम्नलिखित लाइनों} तो यह की तरह लग रहा जोड़ने खोजें:

भी

client_header_timeout 10m; 
client_body_timeout 10m; 
send_timeout 10m; 
fastcgi_read_timeout 10m; 

:

http { 
include  mime.types; 
default_type application/octet-stream; 

#log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
#     '$status $body_bytes_sent "$http_referer" ' 
#     '"$http_user_agent" "$http_x_forwarded_for"'; 

#access_log /var/log/nginx/access.log main; 

sendfile  on; 
#tcp_nopush  on; 
#keepalive_timeout 0; 
keepalive_timeout 120; 
#tcp_nodelay  on; 

#gzip on; 
#gzip_disable "MSIE [1-6]\.(?!.*SV1)"; 

server_tokens off; 

send_timeout 10m; 

include /etc/nginx/conf.d/*.conf; 
} 

मेरे मामले में, मैं जैसे कुछ अन्य निर्देशों को बढ़ाने के लिए किया था।

एक बार जब आप फ़ाइल संपादित कर लिया है, बस के साथ nginx फिर से लोड:

kill -HUP `ps -ef | grep nginx | grep master | awk {'print $2'}` 

या

sudo service nginx restart 

कि यह ठीक करना चाहिए।

पुनश्च:

(http://blog.secaserver.com/2011/10/nginx-gateway-time-out/ मैं निर्देशों यहां पाया): मैं अपने ब्लॉग के लिंक के साथ ओपी द्वारा टिप्पणी देखा था, लेकिन मैं यहाँ प्रासंगिक जानकारी जोड़ने मदद कर सकता है सोचा।

संबंधित मुद्दे