Ich bekomme ständig 504 Gateway-Fehler, wenn mein PHP-Skript für länger als 60 Sekunden ausgeführt werden muss.504 Gateway Time-Out-Media-Tempel
Ich bin auf Media-Tempel auf einem dedizierten Server. Ich habe media temple kontaktiert und sie waren hilfreich, aber keiner ihrer Vorschläge scheint für mich zu funktionieren. Ich wurde angewiesen, diese Datei zu bearbeiten.
/etc/httpd/conf.d/fcgid.conf
, die ich haben unter
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>
so dass ich bis max alles versucht haben, so viel wie ich kann, um dies zu testen, ich bin Führen Sie einfach die folgende Funktion aus.
Sleep funktioniert bei jedem Wert unter 60 Sekunden zurück wahr, aber auf 60 bekomme ich 504 Gateway-Fehler.
mein phpinfo();
Ausgängemax_execution_time 600
max_input_time 180
ich ein paar Post gesehen haben dieses fastcgi_connect_timeout auf die Steigerung haben aber keine Ahnung, wo diese auf Tempel Medien zu finden.
kann jemand helfen dank
UPDATE kann immer noch nicht dieses Problem beheben
nach mit Unterstützung im Chat mir gesagt wurde, ich nginx.conf bearbeiten muß? und wurde auf diesen Beitrag gerichtet http://blog.secaserver.com/2011/10/nginx-gateway-time-out/
kann nicht gut alle Werte auf meinem Hosting. client_header_timeout client_body_timeout send_timeout fastcgi_read_timeout
meine nginx.conf Datei sieht wie folgt aus
#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;
}
Das treibt mir irgendwelche Vorschläge verrückt ???
UPDATE Ich habe es geschafft, am Ende sortiert, nachdem viele Kopfschmerzen einen Blogbeitrag hinzugefügt haben, wie ich das hier behoben habe. http://devsforrest.com/116/boost-settings-on-media-temple-for-maximum-settings
hoffe, das hilft jemand
Ich denke, das ist eine neue Einstellung, weil ich noch nie ein Problem mit ihren älteren Servern hatte, aber einen neuen Server hatte, den ich einschaltete und in das hineinlief. Dein Beitrag hat wirklich sehr geholfen. Meine App läuft im Apache-Modul-Modus und das Problem wurde behoben. Wirklich hilfreich! – David
Hey @ user1503606 - dein letztes Update funktioniert! Posten Sie es als Ihre Antwort und erhalten Sie Kredit für das Finden der Lösung. – squarecandy
Ich würde vorschlagen, dass Sie Ihre Anwendung umgestalten, um die Notwendigkeit zu beseitigen, ein Skript für mehr als 200 ms auszuführen. Sie müssen vielleicht einige schwere Logik in den Hintergrund verschieben. Verwenden Sie eine der folgenden Technologien, um Ihnen dabei zu helfen: AJAX, Nachrichtenwarteschlangen, Memcache, Flag-Dateien. –