>  기사  >  백엔드 개발  >  nginx PHP 499 오류 문제를 해결하는 방법

nginx PHP 499 오류 문제를 해결하는 방법

藏色散人
藏色散人원래의
2021-04-02 09:03:484520검색

nginx php 499 오류는 서버 측 처리 시간이 너무 길어서 클라이언트 연결이 끊어지고 대기하기 때문에 발생합니다. 해결 방법은 Linux에서 "php-fpm.conf"를 찾아 맨 아래에 "pm=dynamic"을 추가하는 것입니다. 등등. 그냥 구성하세요.

nginx PHP 499 오류 문제를 해결하는 방법

이 기사의 운영 환경: nginx1.0.4 시스템, PHP 버전 7.1, DELL G3 컴퓨터

PHP 및 NGINX 499, 502 문제 처리

502가 nginx에 나타나는 데에는 여러 가지 이유가 있지만 대부분의 이유는 리소스 수가 충분하지 않기 때문일 수 있습니다.

즉, 백엔드 php-fpm 처리에 문제가 있다는 뜻입니다. nginx가 백엔드 php-에 올바른 클라이언트 요청을 보냅니다. fpm 프로세스,

php-fpm 프로세스 문제로 인해 올바르지 않습니다. PHP 코드를 구문 분석하고 마지막으로 클라이언트에 502 오류를 반환합니다.

서버에 502가 나타나는 이유는 연결 시간이 초과되었기 때문입니다. 현재 서버에 링크가 너무 많아서 서버가 정상적인 응답을 제공하지 못하고 이러한 오류가 발생합니다. 서버의 동시성이 매우 큰 경우 먼저 머신을 추가한 다음 다음과 같이 최적화하면 더 나은 결과를 얻을 수 있습니다. 그러나 동시성이 낮지만 502가 발생하는 경우 일반적으로 구성 문제 및 스크립트 시간 초과 문제가 원인일 수 있습니다.

마지막 문제는 프로그램 코드 자체가 처리 시간이 너무 길고 리소스를 반환할 수 없다는 점입니다. 따라서 코드 최적화에 주의를 기울이십시오!

499는 "클라이언트가 연결을 닫았습니다"

에 해당합니다. 이는 서버 측 처리 시간이 너무 길고 클라이언트가 대기 상태에서 연결이 끊어졌기 때문일 가능성이 높습니다. 게시물이 너무 빨리 두 번 제출되면 nginx는 이를 안전하지 않은 연결로 간주하고 클라이언트의 연결을 적극적으로 거부합니다.

그리고 타임아웃도 있어요!

대부분의 사람들은 Proxy_ignore_client_abort를 on으로 수정한다고 하는데, 이는 프록시 서버가 클라이언트 연결을 적극적으로 종료해서는 안 된다는 의미입니다. 그러나 그것은 문제에 대한 해결책이 아닙니다!

다음은 fpm을 통해 이 문제를 해결한 방법입니다.

하위 프로세스를 제어합니다. 옵션은 정적 및 동적입니다. static을 선택한 경우 pm.max_children에 의해 고정된 수의 하위 프로세스가 지정됩니다. 전용 서버의 경우 pm 값을 정적으로 설정할 수 있습니다. 동적을 선택하면 일련의 매개변수, 즉 동적 프로세스에 의해 제어됩니다.

Linux에서는 php-fpm.conf를 찾아 맨 아래에 다음 구성을 추가합니다.

pm = 동적 동적 라우팅 옵션 구성

pm.max_children = 최대 16개의 하위 프로세스 수

pm.start_servers = 4개의 시작 시 프로세스

pm.min_spare_servers = 2 유휴 프로세스의 최소 수. 유휴 프로세스가 이 값보다 작으면 새 하위 프로세스를 생성합니다.

pm.max_spare_servers = 16 유휴 프로세스의 최대 수를 보장합니다. 이 값보다 이 값이 정리됩니다.

정적 구성에 대해서는 기본 구성에 대해 너무 자세히 설명하지 않겠습니다. 이에 대해 더 알고 싶으시면 Baidu에서 직접 php-fpm 프로세스 수를 제어하세요.

추천 학습: "

PHP 비디오 튜토리얼

"

위 내용은 nginx PHP 499 오류 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.