Fogeaters, Light The World.

19

2018-Mar

[nginx] php 502 Bad Gateway 에러 해결

작성자: title: MoonBlonix IP ADRESS: *.229.88.154 조회 수: 1416

모든 페이지, 대부분의 페이지에서 발생한다면 2,3 번 해결책을 시도해 보고

특정한 상황에서 뜬다면 1번 해결책을 권장한다. (이 경우 문제는 버퍼 타임아웃이다. 라즈베리같은데서 서버 구동하다봄면 잘 뜨는 듯)

출처 :: https://blog.gomgom.io/502-bad-gateway-solution-on-nginx-php_fpm/


해결책 1 : nginx HTTP 부분에서 fastcgi 버퍼 사이즈와 timeout 시간 변경

– 이 해결 방법은 가장 대중적인 해결 방법으로써, nginx가 php-fpm으로 PHP 처리 요청을 보냈을 때, 버퍼의 크기를 늘려 처리 용량을 확대해주고 timeout이 처리되는 시간을 늘려주는 방법

(참고 : 502 Bad Gateway on Nginx with BuddyPress)

– nginx의 HTTP(최근 버전의 nginx에서는 /etc/nginx/sites-available/default 등) 안의 php 소켓 관련 설정에서, 아래와 같은 설정을 추가

– 이후 nginx와 php7.0-fpm 을 restart (또는 reload) 해주시면 됩니다.
아마 이것으로 대부분의 502 에러는 해결이 됩니다.

 

 

해결책 2 : nginx의 설정 파일과 php-fpm 설정 파일의 소켓 일치시키기

– 간혹 nginx의 설정 안에서의 ‘fastcgi-pass’ 경로와, php-fpm 설정 파일의 listen 경로가 다른 경우, 502 Bad gateway 에러가 나타나는 경우가 있다고도 합니다. 이런 경우에는 PHP를 불러오는 대다수의 경우의 에러가 발생하는 경우가 많습니다.

– 먼저 nginx 설정 파일에서 PHP를 처리하는 부분의, fastcgi-pass 값을 확인하여 PHP-fpm sock 파일이 정상적으로 위치해 있는지 확인합니다. (없는 경우에는, sock 파일을 찾아서 적당한 경로로 입력해 주어야 합니다. 많은 경우에는 /var/ 디렉토리 안에서 php 관련 폴더 안에 위치하고 있습니다.)

 

– sock 파일이 있는 것을 확인했다면, PHP-fpm 설정 파일에서 listen 부분의 sock 파일이 경로가 동일한지 확인합니다.

 

설정이 끝난 이후, nginx와 php-fpm을 재시작(또는 reload) 해 줍니다.

 

 

해결책 3 : php-fpm 설치 후 php-fpm을 실행하지 않은 경우 (…)

– 매우 드문 경우이긴 합니다만, php-fpm 을 설치한 이후 실행하지 않아서 작동하지 않는 경우가 있을 수도 있습니다. (…) service 명령어를 이용해 아래와 같은 명령어들을 실행해 봅니다.

– 혹은 그저, 프로세스의 문제로 재시작을 하여 문제가 해결되는 경우도 있다고 합니다.

 

 

끝마치며

nginx와 php-fpm은 간혹 다양한 문제를 내뿜기도 합니다만, 확실히 Apache2 + PHP 조합보다 더 나은 성능과, 복합적인 처리 능력을 자랑하는 만큼, 다양한 에러를 해결해 나가면서 점점 nginx가 최적화 될 수 있도록 설정하실 수 있으실 것이라고 확신합니다.

502 Bad gateway 또한 다양한 이유에 의해 문제가 발생하고 있기도 하고, 또 다양한 방법으로 해결되기도 합니다. 그런 만큼, 포기하지 마시고 해결하실 수 있으시면 좋겠습니다.

profile
List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 [Web] 클라우드 IDE + 2 title: MoonBlonix 2017-06-25 15126
132 [vsftpd] root(루트) 접속 title: MoonBlonix 2018-04-15 1734
131 [php] 모바일 인식 title: MoonBlonix 2018-03-19 1365
» [nginx] php 502 Bad Gateway 에러 해결 title: MoonBlonix 2018-03-19 1416
129 라즈베리파이를 위한 nginx와 php7.0 저장소 title: MoonBlonix 2018-02-24 1471
128 [javascript] Date사용 및 날자 계산 title: MoonBlonix 2017-12-29 1619
127 [php] 달력 구현 소스 + 1 title: MoonBlonix 2017-12-25 1860
126 [javascript] 팝업 열기 title: MoonBlonix 2017-12-18 1729
125 [php] 날짜/시간 함수정리 title: MoonBlonix 2017-12-09 1583
124 [mysql] 조건문 사용 (if, case), (isnull, ifnull, nvl) title: MoonBlonix 2017-12-07 1362
123 [mysql] 서브쿼리(subquery) + 1 title: MoonBlonix 2017-12-07 1891
122 [jQuery] select box 제어 title: MoonBlonix 2017-10-14 1639
121 [mysql] mysqli_fetch_array, mysqli_fetch_assoc 비교 title: MoonBlonix 2017-10-12 1479
120 [php] 조회수 중복방지 구현 + 1 title: MoonBlonix 2017-10-06 1574
119 [mysql] JOIN 사용 + 2 title: MoonBlonix 2017-10-04 1376
118 [DataBase] ORM(Object-Relational Mappings)에 대하여 title: MoonBlonix 2017-10-04 1343
117 CK에디터 파일(백업용) file title: MoonBlonix 2017-09-25 1551
116 [javascript] js, css 파일 동적 로딩 title: MoonBlonix 2017-09-20 1398
115 [web] 페이지 속도 개선 + 1 title: MoonBlonix 2017-09-17 1379
114 [jQuery] html 갈아엎기 title: MoonBlonix 2017-09-16 1619
113 [jQuery] 성능 최적화 title: MoonBlonix 2017-09-15 1860