nginx 에서 504 Gateway Time-out 에러 해결 방법
페이지 정보
본문
## 증상
nginx 서버를 운영중에 504 Gateway Time-out 오류가 계속 발생한다.
## 문제점
504 Gateway Time-out 오류의 문제점은,
한번 이 에러가 나기 시작하면, 소스를 아무리 수정해도 이 에러가 계속 난다는 것이다.
소스에 이상이 있는가 해서, 소스를 계속 수정해 가면서 새로고침을 계속 하는 식으로 해결을 하려고 해도,
이게 소스 수정과 상관없이 504 에러가 계속 난다.
또한, 에러가 났다 안났다 하기 때문에, 소스의 문제점을 파악할 수가 없다.
나중에 문제를 해결한 후에 확인해 보면, 소스에는 문제가 없음을 알게 된다.
## 해결방법
기본설정에 60초 timeout 설정이 있어서, 웹페이지 호출시 60초 정도에서 타임아웃이 계속 걸려 페이지 로딩이 중단되는데,
timeout 시간을 길게 300초 정도로 잡아서, 해당 페이지가 풀로 한번 실행이 되도록 해 주어야 한다.
중간에 timeout 으로 끊기게 되면, 504 에러가 계속 발생하게 된다. 어딘가에 뭔가 계속 남아 있는 모양이다.
해결방법으로는,
nginx 설정에서, fastcgi 또는 proxy 설정에 _read_timeout 을 지정해 주고, nginx 를 재시작한다.
fastcgi 는 fastcgi_read_timeout
proxy 는 proxy_read_timeout
```
# fastcgi example
location ~ [^/]\.php(/|$) {
....
fastcgi_pass unix:/run/php/myuser1.sock;
#fastcgi_connect_timeout 90; # default 60
#fastcgi_send_timeout 90; # default 60
fastcgi_read_timeout 300;
....
}
# proxy example
location / {
....
proxy_pass http://127.0.0.1:8080;
#proxy_connect_timeout 90; # default 60
#proxy_send_timeout 90; # default 60
proxy_read_timeout 300;
....
}
```
** 참고 : https://blog.lael.be/post/9251
nginx 서버를 운영중에 504 Gateway Time-out 오류가 계속 발생한다.
## 문제점
504 Gateway Time-out 오류의 문제점은,
한번 이 에러가 나기 시작하면, 소스를 아무리 수정해도 이 에러가 계속 난다는 것이다.
소스에 이상이 있는가 해서, 소스를 계속 수정해 가면서 새로고침을 계속 하는 식으로 해결을 하려고 해도,
이게 소스 수정과 상관없이 504 에러가 계속 난다.
또한, 에러가 났다 안났다 하기 때문에, 소스의 문제점을 파악할 수가 없다.
나중에 문제를 해결한 후에 확인해 보면, 소스에는 문제가 없음을 알게 된다.
## 해결방법
기본설정에 60초 timeout 설정이 있어서, 웹페이지 호출시 60초 정도에서 타임아웃이 계속 걸려 페이지 로딩이 중단되는데,
timeout 시간을 길게 300초 정도로 잡아서, 해당 페이지가 풀로 한번 실행이 되도록 해 주어야 한다.
중간에 timeout 으로 끊기게 되면, 504 에러가 계속 발생하게 된다. 어딘가에 뭔가 계속 남아 있는 모양이다.
해결방법으로는,
nginx 설정에서, fastcgi 또는 proxy 설정에 _read_timeout 을 지정해 주고, nginx 를 재시작한다.
fastcgi 는 fastcgi_read_timeout
proxy 는 proxy_read_timeout
```
# fastcgi example
location ~ [^/]\.php(/|$) {
....
fastcgi_pass unix:/run/php/myuser1.sock;
#fastcgi_connect_timeout 90; # default 60
#fastcgi_send_timeout 90; # default 60
fastcgi_read_timeout 300;
....
}
# proxy example
location / {
....
proxy_pass http://127.0.0.1:8080;
#proxy_connect_timeout 90; # default 60
#proxy_send_timeout 90; # default 60
proxy_read_timeout 300;
....
}
```
** 참고 : https://blog.lael.be/post/9251
추천0
댓글목록
등록된 댓글이 없습니다.