502 bad gateway 어떻게 해결하나요?

2019. 11. 21. 03:07

502 bad gateway 라는 오류가 인터네을 사용하던 도중에 떴을 때 어떻게 해결해야하나요? 한번 해결되면 다시 뜨지는 않나요?


총 1개의 답변이 있어요.

저도 일전에 이러한 경험이 있어, 검색 등을 통해 해결했던 내용을 올려 드립니다.

[출처 : http://www.nginxtips.com / https://opennote46.tistory.com/169(욱'S 노트)]

-----------------------------------------------------------------------------------------------------------------

많은 경우 우리는 브라우져를 통해 Nginx에서 502 Bad gateway 오류가 발생했다는 메시지를 볼 수 있다. 웹서버 로그를 확인하면 왜 이러한 메시지가 발생했는지를 확인할 수 있다. 그리고 여기서는 어떻게 그 상황을 해결할 수 있는지에 대해서 설명한다.

502 bad gateway 오류가 발생 했을 때 아래 상황인지를 확인해 보자.

Nginx running as proxy for Apache web server.

Nginx running with PHP-FPM daemon.

Nginx running with other services as gateway.

Bad buffering/timeout configuration


모든 옵션들에 대해 깊게 들어가기 전에 에러 메시지가 의미하는 것이 무엇인지를 이해해야 한다. 502 에러란 게이트웨이에서 발생했다는 것을 의미한다. 게이트웨이란 무엇인가? 심플하게 얘기하자면 한 서비스가 다른 서비스와 커뮤니케이션하는 엑세스 포인트, 브릿지를 의미한다. 이 경우 게이트웨이는 서비스나 어플리케이션일 수 있고 Nginx 웹서버로부터 요청을 받는 것일 수도 있다.

이제 502 메시지를 이해하기 위한 각 이유들은 다음과 같다.


Nginx as Proxy for Apache: 이 경우 게이트웨이는 아파치이다. 아파치를 위한 프록시로 nginx를 사용할 경우 아파치가 죽거나 잘못 설정되었을 때 502 에러를 유발할 수 있다. 어떻게 수정할 수 있냐면 많은 경우 아파치 웹서버를 재기동함으로서 이 상태를 제거할 수 있으나 왜 발생했는지에 대한 로그파일을 반드시 살펴보자.

Nginx with PHP-FPM: 아파치의 경우와 똑같다. php 데몬이 중단되었다고 상상해보라. 또는 요청에 의해 과부하 상태라고 생각해보자. nginx로부터 php 요청은 정상적으로 수행할 수 없을 것이고 에러가 발생할 것이다. 어떻게 고치냐고? php 데몬을 재시작하고 로그를 살펴보자.

Nginx with other services/apps: nginx 뒤에 있는 다른 서비스를 재시작하자 그리고 왜 발생했는지 이유를 로그에서 살펴보자.


다른 빠른 해결 방법은 다음과 같다.


1) http 블럭내 버퍼와 타임아웃을 증가시켜라.

http {

...

fastcgi_buffers 8 16k;

fastcgibuffersize 32k;

fastcgiconnecttimeout 300;

fastcgisendtimeout 300;

fastcgireadtimeout 300;

...

}


2) 사용하고 있다면 APC 캐쉬를 비활성화 시키고 대신 Xcache를 사용하라. APC는 세그먼트 폴트로 인해 특정 환경에서 몇가지 이슈가 있다.

2019. 11. 21. 14:51
답변 신고

이 답변은 콘텐츠 관리 정책 위반으로 비공개되었습니다.

신고사유 :
    답변 삭제

    이 답변은 작성자의 요청 또는 모니터링으로 삭제되었어요.

    이 답변은 비공개되어 본인만 확인할 수 있어요.