Nginx 502 Bad Gateway 오류 의 원인 및 해결 방법

5888 단어 linuxnginx
최근 많은 회사 의 사이트 에서 502 오류 홈 페이지 를 만 나 스스로 정리 했다.  그리고 인터넷 에서 답 을 찾 아 생산 환경 에서 502 를 방지 하기 위해 몇 가지 원인 과 해결 방법 을 모 았 다. 
502 오류 가 발생 할 수 있 는 여러 가지 상황 이 있 습 니 다. 다음은 상황 에 따라 말씀 드 리 겠 습 니 다.
1. fastcgi 버퍼 설정 이 너무 작 음  오류 가 발생 했 습 니 다. 먼저 nginx 의 로그 파일 을 찾 아야 합 니 다. 디 렉 터 리 는 / var / log / nginx 입 니 다. 로그 에서 다음 과 같은 오 류 를 발 견 했 습 니 다.
2013/01/17 13:33:47 [error] 15421#0: *16 upstream sent too big header while reading response header from upstream
자 료 를 찾 아 보 았 는데 대 의 는 nginx 버퍼 에 bug 가 있어 서 우리 사이트 의 페이지 소모 가 버퍼 를 너무 많이 차지 할 수 있 습 니 다.
인터넷 에서 해결 방법 을 찾 아 보 니 외국 사이트 에서 버퍼 를 늘 리 는 방법 을 보고 Nginx 502 Bad Gateway 문 제 를 철저히 해결 했다.방법 은 다음 과 같다.  http {
 ...
 fastcgi_buffers 8 16k;
 fastcgi_buffer_size 32k;
...

}
서버 가 이미 웹 사이트 의 상황 에 따라 상기 두 설정 항목 을 자체 적 으로 확대 하 십시오.
2. 프 록 시 버퍼 설정 이 너무 작 음  만약 에 nginx 역방향 대 리 를 사용한다 면 header 가 너무 커서 기본 1k 를 초과 하면 상기 upstream sent too big header (다시 말 하면 nginx 가 외부 요청 을 백 엔 드 에 처리 하고 백 엔 드 가 되 돌아 오 는 header 가 너무 커서 nginx 가 처리 하지 못 하면 502 를 초래 할 수 있 습 니 다.
server {
    listen       80;
    server_name  *.lxy.me;

    location / {

이 세 줄 추가
           <span class='wp_keywordlink_affiliate'><a href="http://lxy.me/tag/proxy" title="   proxy       " target="_blank">proxya>span>_buffer_size 64k;
          <span class='wp_keywordlink_affiliate'><a href="http://lxy.me/tag/proxy" title="   proxy       " target="_blank">proxya>span>_buffers   32 32k;
          <span class='wp_keywordlink_affiliate'><a href="http://lxy.me/tag/proxy" title="   proxy       " target="_blank">proxya>span>_busy_buffers_size 128k;

이 세 줄 추가
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP       $remote_addr;
        proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;

…………  }
3. 기본 pp - cgi 의 프로 세 스 수 설정 이 너무 적 습 니 다.  설치 하고 사용 하 는 과정 에서 502 문제 가 발생 합 니 다. 일반적으로 기본 phop - cgi 프로 세 스 가 5 개 이기 때 문 입 니 다. phocgi 프로 세 스 가 부족 해서 502 가 발생 할 수 있 습 니 다. 수정 / usr / local / phop / etc / phop - fpm. conf 는 이 중 max children 값 을 적 절 히 증가 시 켜 야 합 니 다. max requests 값 이 부족 할 수도 있 습 니 다. 이 설정 항목 은 메모리 사용량 이 많 습 니 다. 서버 설정 에 따라 입력 하 십시오.줄 설정. 그렇지 않 으 면 역 효 과 를 낼 수 있 습 니 다.
4. phop 실행 시간 초과  php 실행 시간 초과, 수정 / usr / local / php / etc / php. ini max execution time 을 300 으로 변경
5. nginx 대기 시간 초과  일부 PHP 프로그램의 실행 시간 이 Nginx 대기 시간 을 초과 하여 nginx. conf 설정 파일 의 FastCGI timeout 시간 을 적 절 히 늘 릴 수 있 습 니 다.
http {  fastcgi_connect_timeout 300;  fastcgi_send_timeout 300;  fastcgi_read_timeout 300;  ……  }

좋은 웹페이지 즐겨찾기