아하
생활

생활꿀팁

잠이나
잠이나

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

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

55글자 더 채워주세요.
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는 세그먼트 폴트로 인해 특정 환경에서 몇가지 이슈가 있다.