일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Java
- scala
- apache storm
- Storm
- elastic search
- design pattern
- nginx
- Spring Boot
- Clean Code
- 도메인주도설계
- elasticsearch
- SBT
- 제주
- 스프링 배치
- Spring Batch
- intellij
- hibernate
- spark
- Linux
- Hbase
- Spring
- docker
- Domain Driven Design
- Angular2
- Gradle
- 엘라스틱서치
- Spring XD
- hdfs
- hadoop
- DDD
- Today
- Total
욱'S 노트
Nginx - 502 Bad Gateway 해결법 본문
많은 경우 우리는 브라우져를 통해 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;
fastcgi_buffer_size 32k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
...
}
2) 사용하고 있다면 APC 캐쉬를 비활성화 시키고 대신 Xcache를 사용하라. APC는 세그먼트 폴트로 인해 특정 환경에서 몇가지 이슈가 있다.
출처 : http://www.nginxtips.com
'Programming > Nginx' 카테고리의 다른 글
Nginx - Using nginx as HTTP load balancer (1) | 2016.03.24 |
---|---|
Nginx - Beginner’s Guide (0) | 2016.03.24 |
Nginx - 설치 for centos (0) | 2016.03.23 |