2012-03-06 2 views
1

오랫동안 실행되는 파일 가져 오기 레일스 프로세스가 있습니다. 아파치에서 Nginx로 전환 한 후 우리는 정확히 매 10 분 후에 504 개의 시간 초과 오류를 받기 시작했습니다. 우리는 nginx.conf의 10 분 제한을 설정하지 않았습니다. 나는 stackoverflow에 대한 몇 가지 질문/답변을 보았지만 해결책을 찾지 못했습니다. 우리가 Nginx의 단순성과 속도를 좋아하기 때문에 저는 아파치로 돌아가고 싶지 않습니다. 그러나 Nginx에서 모든 타임 아웃 설정 옵션을 찾을 수 있었기 때문에 미친 듯이 날 것입니다 :장기 실행 레일스 프로세스 Nginx + Passenger에서 오류가 발생했습니다.

이것은 현재 제가 무엇입니까? 우리의 nginx.conf 파일에 있습니다 - 내가 뭘 잘못하고 있니?

http { 
    keepalive_timeout 300 300; 
    keepalive_requests 20; 
    send_timeout 30m; 
    proxy_read_timeout 30m; 
    proxy_connect_timeout 30m; 
    ... 

    server { 
     listen 80; 
    ... 
    server { 
     listen 443; 

답변

0

구성의 중요한 부분은 빠졌지 만, 아마도 proxy_pass가 아닌 fastcgi_pass를하고 있다고 가정합니다. client_header_timeout, client_body_timeout, send_timeout과 같은 지시어를 보길 원할 것입니다.

+0

감사합니다. MTeck. 사실 client_header_timeout과 client_body_timeout이 config에없는 이유는 이미 시도해 봤지만 제대로 작동하지 않았기 때문입니다. send_timeout이 설정에 있습니다. 한 가지 다른 점은 : 타임 아웃 필드가 모두 서버 블록이 아닌 http config 블록에 있다고 가정합니다. 미리 감사드립니다. – anilscuba

1

10 분은 Nginx 및 Passenger 하드 코드 제한입니다. 승객 여러분 께 직접 이메일을 받았습니다 :

10 분 제한 시간은 Phusion Passenger 모듈에 하드 코드됩니다. 그러나 실제로 Nginx 이 허용하는 최대 시간 제한은 이미 10 분이므로 이미 늘릴 방법이 없습니다.

관련 문제