nginx_504_gateway_timeout

리버스 프록시를 이용해 사이트를 운영하다 보면 대용량 사이즈의 파일을 업로드 할때나 리퀘스트 응답이 지연될때 504 Gateway Time-out 메시지를 볼수 있습니다.

프록시 옵션들중 실행시간에 관련된 값의 기본이 60초여서 60초 이상 리퀘스트가 지연될 경우 504 에러를 뿜게 되는데요. 이러한 오류 발생시 아래와 같이 프록시 연결 시간과 타임 아웃 시간을 기본값보다 크게 잡아 문제를 해결할 수 있습니다.

NGINX 504 Gateway Time-out 해결 방법

server {
   listen 80;
   server_name extrememanual.net;

   location / {
      proxy_pass http://192.xxx.xxx.xxx:80/;
      proxy_connect_timeout 300;
      proxy_send_timeout 300;
      proxy_read_timeout 300;
      send_timeout 300;
   }
}

리버스 프록시가 설정되는 location 블럭에 위와 같이 프록시 타임아웃 관련 옵션을 길게 설정하면 되겠습니다.

fastcgi_read_timeout 300;

만일 리버스 프록시를 사용하지 않는 환경에서 에러가 나는 경우 PHP에서 설정된 실행시간이 짧아 생기는 오류이므로 위 코드를 fastcgi 설정 파일 안에 추가하면 되겠습니다.

NGINX에서 PHP를 연동하는 기본 설정 파일은 /snippets/fastcgi-php.conf 이니 참고하세요.

1 Comment

  1. Avatar

    고맙습니다. 리눅스 계열은 한국어 자료가 많지 않은데, 큰 도움이 됬습니다.

Write A Comment