2012-10-01 9 views
8

php komutumun 60 saniyeden uzun sürmesi gerektiğinde sürekli olarak 504 ağ geçidi hatası alıyorum.504 Ağ Geçidi Zaman aşımı ortamı tapınağı

Özel bir sunucuda medya tapınağındayım. Medya mabediyle temasa geçtim ve yardımcı oldular, ancak bu onların tasfiyesinin hiçbiri benim için işe yaramıyor gibi görünüyor. i, i mümkün olduğunca çok maks her şeyi denedi yüzden

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> 

altına zorunda

Bunu test etmek

/etc/httpd/conf.d/fcgid.conf öyleyim sadece aşağıdaki işlevi çalıştırıyor.

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

Uyku gerçek dönen 60 saniye altında herhangi bir değeri çalışacak ama 60 i 504 geçidi hatası alıyorum.

phpinfo(); Bu fastcgi_connect_timeout artan bir kaç yazı gördük ama var

max_execution_time 600 
max_input_time 180 

çıkışları nereye medya tapınağın bu bulmak için hiçbir fikrim yok.

Can kimse yardım sayesinde

GÜNCELLEME HALA cant FIX BU

i nginx.conf düzenlemeniz gerekir söylendi desteği ile sohbet sonra? ve bu yayına, hostingimdeki değerlerden herhangi birini uygulayamamak için http://blog.secaserver.com/2011/10/nginx-gateway-time-out/

yönlendirilmiştir.

fastcgi_read_timeout benim nginx.conf dosyası send_timeout client_body_timeout client_header_timeout Bu herhangi bir öneri beni delirtiyor bu

#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; 
} 

benziyor ???

GÜNCELLEME UPDATE, başlıklarımın bunu burada nasıl düzelttiğime dair bir blog yazısı ekledikten sonra, sonunda sıralamayı almayı başardım. http://devsforrest.com/116/boost-settings-on-media-temple-for-maximum-settings

Umut bu birileri

+1

Bu yeni bir ayar çünkü bence eski sunucularında hiç sorun yaşamadım ama açtığım yeni bir sunucum vardı. Gönderiniz gerçekten çok yardımcı oldu. Uygulamam Apache Modülü modunda çalışıyor ve bu hala sorunu çözdü. Gerçekten faydalı! – David

+1

Hey @ user1503606 - son güncellemeniz çalışıyor! Cevabınız olarak gönderin ve çözümü bulmak için kredi alın. – squarecandy

+0

Uygulamanızı, 200 ms'den fazla bir komut dosyası çalıştırma gereksinimini ortadan kaldırmak için yeniden düzenlemenizi öneririm. Belki biraz ağır mantığı arka plana taşımalısın. Size yardımcı olması için aşağıdaki teknolojilerin herhangi birini kullanın: AJAX, Mesaj kuyrukları, memcache, bayrak dosyaları. –

cevap

3

ben de aynı sorunu vardı ve nginx.conf dosyasını düzenleyerek bunu çözmüş olur. Çoğu durumda, bu, nginx.conf dosyasındaki send_timeout yönergesinin eklenmesi/artırılmasıyla giderilebilir.

sizin nginx.conf dosyasını (genellikle /usr/local/nginx/nginx.conf ya da bazen /etc/nginx/sites-available/default bulunan), nano veya başka bir metin düzenleyicisi kullanarak açın ve http {arasında aşağıdaki satırları} yüzden benziyor eklemek için:

çok

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

: benim durumumda

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; 
} 

, ben gibi diğer bazı direktifleri artırmak zorunda kaldı.Dosyayı düzenledikten sonra

, sadece birlikte nginx yeniden:

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

veya düzeltmek gerekir

sudo service nginx restart 

.

PS:

( http://blog.secaserver.com/2011/10/nginx-gateway-time-out/ burada direktifleri bulundu): Onların bloga bir bağlantı ile OP tarafından yorumunu gördüm ama yardımcı olabilecek burada alakalı bilgiler ekleyerek düşündüm.