502 잘못된 게이트웨이 NGINX 오류를 수정하는 방법? (7가지 방법)
게시 됨: 2023-04-20Nginx는 성능, 확장성 및 유연성으로 널리 알려진 잘 알려진 오픈 소스 웹 서버입니다. 그러나 다른 웹 서버와 마찬가지로 Nginx는 클라이언트에 콘텐츠를 전달하는 기능을 방해하는 오류에 직면할 수 있습니다. 이러한 오류 중 하나는 502 Bad Gateway Nginx 오류입니다.
오류가 발생하면 특히 기술적으로 능숙하지 않은 경우 상당히 실망스럽고 혼란스러울 수 있습니다. 사망의 흰색 화면 및 데이터베이스 연결 설정 오류와 같은 몇 가지 유사한 눈에 띄는 오류가 발생할 수 있습니다. 그러나 502 불량 게이트웨이 nginx 오류는 매우 인기 있는 오류입니다.
이 오류가 발생하는 데는 여러 가지 이유가 있을 수 있으므로 문제를 해결하는 방법도 다양합니다. 이 게시물에서는 502 불량 게이트웨이 Nginx가 실제로 의미하는 바, 가능한 원인 및 따라야 할 최상의 문제 해결 방법에 대해 설명합니다.
시작합시다!
읽기: 웹사이트에서 502 잘못된 게이트웨이 오류를 수정하는 15가지 방법
502 잘못된 게이트웨이 Nginx 오류는 무엇입니까?
502 잘못된 게이트웨이 Nginx 오류는 게이트웨이 또는 프록시 서버 역할을 하는 서버가 업스트림 서버로부터 유효한 응답을 받지 못하는 것을 나타내는 HTTP 상태 코드입니다. Nginx의 경우 서버가 업스트림 서버와 연결을 설정할 수 없거나 업스트림 서버가 잘못된 응답을 반환하는 경우 502 잘못된 게이트웨이 오류가 발생합니다.
이 오류는 일반적으로 리버스 프록시 또는 로드 밸런서 뒤에서 호스팅되는 웹 사이트 또는 웹 애플리케이션에 액세스하려고 할 때 나타납니다.
다른 사이트에서 찾을 수 있는 502 잘못된 게이트웨이 Nginx 오류의 여러 변형이 있습니다. 예를 들어:
- HTTP 오류 502 - 잘못된 게이트웨이
- 502 프록시 오류
- 502 배드 게이트웨이
- 502 서비스가 일시적으로 과부하됨
- HTTP 502
- 502 잘못된 게이트웨이 NGINX
- 오류 502
502 잘못된 게이트웨이 Nginx 오류의 원인은 무엇입니까?
Nginx에서 502 잘못된 게이트웨이 오류가 발생할 수 있는 몇 가지 이유가 있을 수 있지만 다음은 가장 일반적인 이유 중 일부입니다.
서버 과부하
백엔드 서버가 너무 많은 요청을 받으면 과부하 상태가 되어 제한 시간 내에 응답하지 못할 수 있습니다. 업스트림 서버가 클라이언트의 요청을 이행할 수 없기 때문에 502 오류가 발생합니다. 적절한 서버 크기 조정, 리소스 할당, 부하 분산 및 확장 전략을 통해 서버 과부하를 방지할 수 있습니다.
연결 문제
- 연결 문제는 리버스 프록시 서버와 백엔드 서버 간의 네트워크 연결에 문제가 있는 경우 Nginx에서 502 잘못된 게이트웨이 오류를 유발할 수 있습니다.
- 이는 네트워크 정체, 잘못 구성된 네트워크 설정 또는 하드웨어 오류로 인해 발생할 수 있습니다.
- 리버스 프록시 서버가 요청을 백엔드 서버로 전달하려고 시도하지만 연결을 설정할 수 없으면 클라이언트에 502 오류를 반환합니다.
- 리버스 프록시 서버가 클라이언트와 백엔드 서버 사이에서 중개자 역할을 하고 클라이언트의 요청을 이행하기 위해 백엔드 서버에 연결할 수 없기 때문에 오류가 발생합니다.
- 네트워크 설정 문제 해결, 방화벽 규칙 확인 및 네트워크 트래픽 모니터링은 문제를 해결하는 데 도움이 될 수 있습니다.
DNS 문제
- 백엔드 서버에 대한 DNS 확인이 실패하면 DNS 문제로 인해 Nginx에서 502 잘못된 게이트웨이 오류가 발생할 수 있습니다.
- 이는 잘못된 DNS 구성, DNS 서버 오류 또는 DNS 캐싱 문제로 인해 발생할 수 있습니다.
- 클라이언트가 역방향 프록시 서버에 요청을 보낼 때 역방향 프록시 서버는 백엔드 서버의 도메인 이름을 IP 주소로 확인해야 합니다.
- DNS 확인에 실패하면 역방향 프록시 서버가 요청을 백엔드 서버로 전달할 수 없으므로 클라이언트에 502 오류가 반환됩니다.
읽기: DNS란 무엇입니까?
방화벽 제한
- 방화벽이 역방향 프록시 서버와 백엔드 서버 간의 연결을 차단하면 방화벽 제한으로 인해 Nginx에서 502 잘못된 게이트웨이 오류가 발생할 수 있습니다.
- 이는 방화벽이 특정 IP 주소 또는 포트에서 들어오고 나가는 트래픽을 제한하도록 구성된 경우에 발생할 수 있습니다.
- 리버스 프록시 서버가 백엔드 서버에 연결을 시도하지만 방화벽이 연결을 차단하면 클라이언트에 502 오류를 반환합니다.
- 이는 리버스 프록시 서버가 클라이언트와 백엔드 서버 간의 중개자 역할을 하고 백엔드 서버와의 연결을 설정하여 클라이언트의 요청을 이행할 수 없기 때문에 발생합니다.
- 502 오류를 일으키는 방화벽 관련 문제를 해결하려면 역방향 프록시와 백엔드 서버 간에 트래픽이 흐르도록 방화벽 규칙을 조정해야 할 수 있습니다.
소프트웨어 버그
- 소프트웨어 버그 또는 리버스 프록시 서버 또는 백엔드 서버의 구성 오류로 인해 502 잘못된 게이트웨이 오류가 발생할 수 있습니다.
- 이 오류는 코딩 오류 또는 서버 모듈 또는 응용 프로그램의 구성 오류로 인해 발생할 수 있습니다.
- 서버의 소프트웨어 또는 구성에 버그가 포함되어 있으면 요청을 처리하지 못하거나 제한 시간 내에 응답하지 못하여 클라이언트에 502 오류가 반환될 수 있습니다.
- 502 오류를 일으키는 소프트웨어 관련 문제를 해결하려면 리버스 프록시 및 백엔드 서버의 로그를 모두 검사하여 오류 또는 경고 메시지를 식별해야 할 수 있습니다.
PHP-FMP가 응답하는 데 너무 오래 걸림
- PHP-FPM(FastCGI Process Manager)은 제한 시간 내에 응답하지 않거나 심각한 오류가 발생하면 Nginx에서 502 잘못된 게이트웨이 오류를 일으킬 수 있습니다.
- 이 오류는 리소스 부족, 구성 오류 또는 PHP 코드의 버그로 인해 발생할 수 있습니다.
- PHP-FPM은 Nginx에서 PHP 애플리케이션을 실행하는 인기 있는 방법으로, Nginx가 PHP-FPM에 요청을 보내고 PHP 코드를 처리한 다음 결과를 Nginx에 반환한 다음 응답을 다시 클라이언트로 보냅니다.
- PHP-FPM 관련 문제를 해결하려면 PHP-FPM 구성을 조정하여 프로세스 또는 스레드 수를 늘리거나 시간 초과 설정을 조정해야 할 수 있습니다.
- 버그나 성능 문제를 식별하고 수정하기 위해 PHP 코드를 검사해야 할 수도 있습니다.
- 또한 서버 로그 및 시스템 리소스를 모니터링하면 PHP-FPM의 더 큰 문제를 나타낼 수 있는 패턴이나 추세를 식별하는 데 도움이 될 수 있습니다.
읽기: HTTP 504 게이트웨이 시간 초과 오류를 수정하는 방법은 무엇입니까?
502 잘못된 게이트웨이 Nginx를 수정하는 방법?
다음은 502 잘못된 게이트웨이 Nginx 오류를 수정하기 위해 따를 수 있는 몇 가지 최상의 솔루션입니다.
- Nginx의 상태 확인
- 백엔드 서버 상태 확인
- DNS 구성 확인
- 방화벽 구성 확인
- 버퍼 크기 늘리기
- Nginx 서버 재시작
- PHP-FPM 상태 확인
Nginx의 상태 확인
가장 먼저 해야 할 일은 Nginx가 실행 중이고 요청에 응답하는지 확인하는 것입니다. 그렇게 하려면 아래에 주어진 다음 명령을 실행하십시오.
1 |
systemctl status nginx |
Nginx가 실행 중이면 다음과 같은 출력 메시지가 표시됩니다.
nginx.service - The nginx HTTP Server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2022-10-11 10:25:41 UTC; 1 days ago
Docs: https://httpd.nginx.org/docs/2.4/
Nginx가 실행 중이 아니면 다음과 같은 출력 메시지가 표시됩니다.
nginx.service - The nginx HTTP Server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Fri 2022-10-11 10:25:41 UTC; 25s ago
Docs: https://httpd.nginx.org/docs/2.4/
이제 Nginx가 실행되지 않는 경우 다음 명령을 사용하여 다시 시작해야 합니다.
systemctl start nginx
백엔드 서버 상태 확인
- Nginx를 호스팅하는 리버스 프록시 서버에 로그인합니다.
- 터미널 창을 열고 다음 명령을 실행합니다.
curl -I http://backend-server-ip-address/
• "backend-server-ip-address"를 백엔드 서버의 IP 주소로 바꿉니다.
• 명령 출력에서 HTTP 상태 코드를 확인합니다. 백엔드 서버가 올바르게 실행 중인 경우 상태 코드 200 OK가 표시되어야 합니다.
• 200 이외의 상태 코드를 수신하면 백엔드 서버에 문제가 있을 수 있음을 나타냅니다. 오류 또는 경고 메시지를 식별하기 위해 백엔드 서버의 로그를 검사하여 문제를 자세히 조사할 수 있습니다.
DNS 구성 확인
DNS 확인에 실패하면 역방향 프록시 서버가 요청을 백엔드 서버로 전달할 수 없으므로 클라이언트에 502 잘못된 게이트웨이 오류가 반환됩니다. 따라서 백엔드 서버의 DNS 구성이 올바른지 확인하는 것이 중요합니다.
DNS 구성을 확인하려면 다음 단계를 수행하십시오.
- Nginx를 호스팅하는 리버스 프록시 서버에 로그인합니다.
- 터미널 창을 열고 다음 명령을 실행합니다.
nslookup backend-server-domain-name
"backend-server-domain-name"을 백엔드 서버의 도메인 이름으로 바꿉니다.
• 명령의 출력을 확인하여 백엔드 서버에 대해 올바른 IP 주소가 반환되는지 확인합니다.
- 명령 출력에 DNS 확인이 실패했다고 표시되면 DNS 구성에 문제가 있을 수 있습니다. 백엔드 서버의 도메인 이름에 대한 DNS 설정을 확인하거나 DNS 공급자에게 도움을 요청하여 문제를 자세히 조사할 수 있습니다.
방화벽 구성 확인
비정상적인 차단에 대한 방화벽 로그를 확인하는 것이 좋습니다. 경우에 따라 방화벽은 사이트를 방지하거나 차단하기도 합니다. 이 문제를 해결하려면 방화벽을 일시적으로 비활성화하고 문제가 지속되는지 또는 해결되었는지 확인해야 합니다.
버퍼 크기 늘리기
버퍼 크기를 늘리면 Nginx가 서버 응답에서 더 많은 데이터를 저장할 수 있으므로 응답이 완전하고 오류가 없는지 확인할 수 있습니다. 버퍼 크기를 늘리려면 Nginx 구성 파일을 편집하고 다음 지시문을 추가해야 합니다.
-
proxy_buffer_size
: 각 버퍼의 크기를 설정합니다. 기본값은 일반적으로 4K입니다. 서버 요구 사항에 따라 더 높은 값으로 늘릴 수 있습니다. 예를 들어 버퍼 크기를 16K로 설정하려면 구성 파일에 다음 줄을 추가합니다.
proxy_buffer_size 16k;
-
proxy_buffers
: 할당할 버퍼 수를 설정합니다. 기본값은 일반적으로 8입니다. 서버 요구 사항에 따라 더 높은 값으로 늘릴 수 있습니다. 예를 들어 버퍼 수를 32로 설정하고 버퍼 크기를 16K로 설정하려면 구성 파일에 다음 줄을 추가합니다.
proxy_buffers 32 16k;
참고: 버퍼 크기와 버퍼 수를 늘리면 서버의 메모리 사용량이 증가한다는 점에 유의해야 합니다. 따라서 다양한 버퍼 크기와 버퍼 수를 실험하여 서버 및 애플리케이션에 대한 최적의 설정을 찾아야 합니다.
- Nginx 구성 파일을 변경한 후 변경 사항을 적용하려면 파일을 저장하고 Nginx를 다시 시작하십시오. 다음 명령을 실행하여 이를 수행할 수 있습니다.
sudo service nginx restart
Nginx 서버 재시작
경우에 따라 Nginx 서버를 다시 시작하면 502 잘못된 게이트웨이 Nginx 오류가 해결될 수 있습니다. 이것을하기 위해,
터미널이나 셸에서 명령을 실행해야 합니다. 정확한 명령은 사용 중인 운영 체제 및 배포판에 따라 다르지만 다음은 몇 가지 예입니다.
- 우분투와 데비안:
sudo service nginx restart
- CentOS, 페도라 및 RHEL:
sudo systemctl restart nginx
- macOS :
sudo nginx -s reload
이 명령은 Nginx 서버를 정상적으로 다시 시작합니다. 즉, 종료하고 다시 시작하기 전에 활성 연결이 완료될 때까지 기다립니다.
PHP-FPM 상태 확인
때로는 502 잘못된 게이트웨이 Nginx 오류가 실행되지 않는 PHP-FPM에 의해 트리거될 수도 있습니다. 따라서 PHP-FPM이 제대로 실행되고 있는지 확인하기 위해 PHP-FPM의 상태를 확인해야 합니다.
실행 상태를 확인하려면 다음 명령을 사용할 수 있습니다.
sudo service php-fpm status
PHP-FPM이 실행 중이면 활성화되었다는 메시지가 표시되어야 합니다.
그러나 PHP-FPM이 실행되지 않는 경우 다음 명령을 사용하여 다시 시작할 수 있습니다.
sudo service php-fpm restart
이 명령은 PHP-FPM 서비스를 다시 시작하여 502 잘못된 게이트웨이 Nginx 오류를 유발할 수 있는 문제를 해결하는 데 도움이 될 수 있습니다.
요약
502 잘못된 게이트웨이 Nginx 오류는 Nginx 사용자에게 발생할 수 있는 일반적인 오류입니다. 일반적으로 연결 문제, 서버 과부하, DNS 문제, 방화벽 제한 또는 소프트웨어 버그로 인해 발생합니다.
그러나 이 문서에 설명된 단계에 따라 502 불량 게이트웨이 nginx 오류를 해결할 수 있습니다.
위의 방법 중 어느 것도 효과가 없다면 불행히도 Nginx 포럼이나 경험이 풍부하고 자격을 갖춘 Nginx 컨설턴트에게 도움을 요청하는 것이 좋습니다.
이 게시물에서 놓쳤을 수 있는 502 Bad Gateway Nginx 오류에 대한 팁이나 제안이 있거나 동일한 경험을 공유하고 싶다면 아래 댓글 섹션에 알려주십시오. 귀하의 의견을 환영합니다.
읽기: WordPress에서 HTTP 500 내부 서버 오류를 수정하는 방법은 무엇입니까?
자주 묻는 질문
502 잘못된 게이트웨이 nginx를 어떻게 수정합니까?
아래 방법에 따라 502 잘못된 게이트웨이 nginx 오류를 수정할 수 있습니다.
1. Nginx 상태 확인
2. 백엔드 서버 상태 확인
3. DNS 구성 확인
4. 방화벽 구성 확인
5. 버퍼 크기 늘리기
6. Nginx 서버를 다시 시작합니다.
7. PHP-FPM 상태 확인
내 nginx 상태를 어떻게 확인합니까?
nginx 상태를 확인하려면 아래 명령을 실행하십시오.
systemctl 상태 nginx
출력에 nginx가 실행 중인지 여부가 표시됩니다.
502 잘못된 게이트웨이 오류란 무엇입니까?
502 잘못된 게이트웨이 Nginx 오류는 게이트웨이 또는 프록시 서버 역할을 하는 서버가 업스트림 서버로부터 유효한 응답을 받지 못하는 것을 나타내는 HTTP 상태 코드입니다.