Recibo constantemente 504 errores de puerta de enlace cuando mi script php necesita ejecutarse durante más de 60 segundos.504 Gateway Time-out media temple
Estoy en media temple en un servidor dedicado. Me he puesto en contacto con Media Temple y han sido útiles, pero ninguna de sus sugerencias parece funcionar para mí, me dijeron que debía editar este archivo.
/etc/httpd/conf.d/fcgid.conf
, que tengo que a continuación
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>
por lo que he tratado de máximo todo lo más que pueda, para probar esta soy simplemente ejecutando la función a continuación.
function test504(){
@set_time_limit(0);
sleep(60);
echo "true";
}
Dormir funcionará en cualquier valor inferior a 60 segundos devolviendo verdadero, pero en 60 me da error de puerta de enlace 504.
my phpinfo(); salidas
max_execution_time 600
max_input_time 180
he visto algunos post sobre el aumento de este fastcgi_connect_timeout pero no tienen idea de dónde encontrar esto en media temple.
¿Alguien puede ayudar gracias
ACTUALIZACIÓN TODAVÍA ESTA REVISIÓN DEL CANTO
después de charlar con el apoyo me han dicho que tengo que editar nginx.conf? y fue dirigido a esta publicación http://blog.secaserver.com/2011/10/nginx-gateway-time-out/
No puedo corregir ninguno de los valores en mi alojamiento. client_header_timeout client_body_timeout send_timeout fastcgi_read_timeout
mi archivo nginx.conf se parece a esto
#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;
}
Esto me está volviendo loca alguna sugerencia ???
ACTUALIZACIÓN Pude ordenarlo al final después de que muchos dolores de cabeza añadieron una publicación en el blog sobre cómo lo solucioné aquí. http://devsforrest.com/116/boost-settings-on-media-temple-for-maximum-settings
Espero que esto ayude a alguien
Creo que esta es una nueva configuración porque nunca he tenido un problema con sus servidores anteriores pero tenía un nuevo servidor que encendí y me encontré con esto. Tu publicación realmente ayudó mucho. Mi aplicación se ejecuta en modo Módulo Apache y esto todavía solucionó el problema. ¡De mucha ayuda! – David
¡Hola @ usuario1503606 - su última actualización funciona! Publique como su respuesta y obtenga crédito por encontrar la solución. – squarecandy
Le sugiero que refactorice su aplicación para eliminar la necesidad de ejecutar un script durante más de 200ms. Tal vez necesites mover un poco de lógica pesada al fondo. Utilice cualquiera de las siguientes tecnologías para ayudarle con eso: AJAX, colas de mensajes, Memcache, archivos de banderas. –