nginx 504 시간 초과 문제 해결

2351 단어 nginx
문제 발견
최근 에 파일 분석 서비스의 압력 측정 을 하고 있 는데 jmeter 는 기본적으로 모든 오류 피드백 이 504 이 고 약 1% 정도 의 요청 이 504 인 것 을 발견 했다.파일 분석 서비스 가 상대 적 으로 오래 걸 려 대기 시간 이 초과 되 었 습 니 다.
분석 하 다.
nginx 접근 에 504 Gateway Time - out 이 나타 나 는데 보통 프로그램 실행 시간 이 너무 길 어서 응답 시간 이 초과 되 었 습 니 다. 예 를 들 어 프로그램 이 90 초 를 실행 해 야 하고 nginx 의 최대 응답 대기 시간 은 30 초 입 니 다. 그러면 시간 초과 가 발생 할 수 있 습 니 다.
일반적으로 다음 과 같은 몇 가지 상황 으로 인해 발생 한다.
  • 프로그램 이 대량의 데 이 터 를 처리 하여 대기 시간 이 초과 되 었 다.
  • 프로그램 에서 외부 요청 을 호출 하고 외부 요청 응답 시간 이 초과 되 었 습 니 다.
  • 데이터 베 이 스 를 연결 하 는 데 실 패 했 고 멈 추 지 않 았 으 며 순환 이 다시 연결 되 었 습 니 다.

  • 이런 상황 이 발생 하면 우 리 는 먼저 절 차 를 최적화 시 켜 집행 시간 을 단축 시 킬 수 있다.파일 분석 자체 가 오래 걸 리 는 작업 이 라면 nginx 시간 제한 파 라 메 터 를 확대 하여 프로그램 이 정상적으로 실 행 될 수 있 도록 할 수 있 습 니 다.
    nginx 설정 수정
    nginx. conf 에서 다음 과 같은 몇 가지 인 자 를 설정 하여 시간 초과 시간 을 증가 합 니 다.
    http {
        ...
        fastcgi_connect_timeout 3000;
        fastcgi_send_timeout 3000;
        fastcgi_read_timeout 3000;
       
    	...
    }
    
  • fastcgi_connect_timeout fastcgi 연결 시간 초과, 기본 60 초
  • fastcgi_send_timeout nginx 프로 세 스 가 fastcgi 프로 세 스에 요청 프로 세 스 를 보 내 는 시간 초과, 기본 값 60 초
  • fastcgi_read_timeout fastcgi 프로 세 스 가 nginx 프로 세 스에 출력 프로 세 스 를 보 내 는 시간 초과, 기본 값 60 초
  •     server {
            listen 8888;
            location / {
                proxy_pass http://pdfs;
                proxy_connect_timeout   18000;
                proxy_send_timeout      18000;
                proxy_read_timeout      18000;
            }
        }
    
  • proxy_connect_timeout 1800s;#nginx 와 백 엔 드 서버 연결 시간 초과 (프 록 시 연결 시간 초과)
  • proxy_send_timeout 1800s;#백 엔 드 서버 데이터 전송 시간 (프 록 시 전송 시간 초과)
  • proxy_read_timeout 1800s;#연결 성공 후 백 엔 드 서버 응답 시간 (프 록 시 수신 시간 초과)
  • 좋은 웹페이지 즐겨찾기