2012-10-01 2 views
8

내 PHP 스크립트를 60 초 이상 실행해야하는 경우 지속적으로 504 게이트웨이 오류가 발생합니다.504 게이트웨이 제한 시간 미디어 사원

전용 서버의 미디어 사원에 있습니다. 나는 미디어 사원에 연락했고 그들은 도움이되었다. 그러나 그들의 suggesion의 어느 것도 나에게 맞지 않는 것처럼 보인다 나는이 파일을 편집 할 것을 명령 받았다. 내가, 내가 할 수있는만큼 최대 모든 것을 시도했다 그래서

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> 

아래에있는

이를 테스트 할

/etc/httpd/conf.d/fcgid.conf 나는 아래 함수를 실행하면됩니다.

절전 모드는 60 초 미만이면 작동하지만 60은 504 게이트웨이 오류가 발생합니다.

내 phpinfo(); 나는이 fastcgi_connect_timeout 증가에 대한 몇 가지 게시물을 볼 수 있지만, 한

max_execution_time 600 
max_input_time 180 

출력은 어디에 미디어 사원에이를 찾을 모른다.

수있는 사람의 도움 덕분에

UPDATE 정지 CANT FIX 본

나는 내가 nginx.conf 편집해야 들었습니다 지원과 채팅 후? 이 게시물로 이동했습니다 http://blog.secaserver.com/2011/10/nginx-gateway-time-out/

괜찮아요 내 호스팅에있는 값 중 하나.

fastcgi_read_timeout 내 nginx.conf 파일 send_timeout client_body_timeout client_header_timeout 이 어떤 제안 나를 미치게 운전이

#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

200ms 넘게 스크립트를 실행할 필요가 없도록 응용 프로그램을 리팩터링하는 것이 좋습니다. 무거운 논리를 배경으로 옮겨야 할 수도 있습니다. 다음 기술 중 하나를 사용하여 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 

.

PS :

은 ( http://blog.secaserver.com/2011/10/nginx-gateway-time-out/ 내가 여기 지시를 발견) : 나는 자신의 블로그에 링크와 함께 OP에 의해 코멘트를 보았다하지만 난 도움이 될 수 있습니다 여기에 관련 정보를 추가 생각했다.