클라이언트와 서버에서 발생하는 NGINX 내부 서버 오류 500 해결 방법

Nginx(발음은 다음과 같습니다) 엔진-X2004년 10월에 공개된 오픈 소스 웹 서버인 HTTP는 로드 밸런싱, 리버스 프록시 및 HTTP 캐시 역할도 합니다. 마이크로소프트, 구글, 페이스북, 트위터, 애플과 같은 유명 기술 기업들이 HTTP를 채택한 것을 보면 그 인기와 유용성을 알 수 있습니다.

Nginx에

Nginx에서 500 내부 서버 오류가 발생하는 의미는 무엇인가요?

다른 소프트웨어 애플리케이션이나 서버와 마찬가지로 Nginx도 오류가 발생할 수 있으며, 내장된 오류 보고 시스템을 통해 이를 확인할 수 있습니다. 하지만 500 내부 서버 오류는 특수한 경우입니다. 이 오류는 Apache나 IIS와 같은 다른 웹 서버에서도 발생할 수 있습니다.

Nginx 내부 서버 오류 500

오류 500은 원인이 명확하게 파악되지 않은 서버 문제를 나타내는 HTTP 상태 코드입니다. 403(접근 금지)이나 404(찾을 수 없음)와 같은 다른 HTTP 상태 코드와 달리, 오류 500은 가능한 원인에 대한 단서를 제공하지 않습니다.

클라이언트 측에서 Nginx 오류 500을 해결하는 방법은 무엇인가요?

이 오류 코드는 서버 측 문제를 나타내며, 일반적으로 서버 자체에서 해결할 수 있습니다. 하지만 드물게 브라우저가 서버에서 처리할 수 없는 요청을 생성하여 문제의 원인이 될 수도 있습니다.

브라우저가 문제의 원인인지 확인하려면 다른 브라우저, 다른 기기, 다른 네트워크에서 해당 웹사이트를 열어보세요. 정상적으로 작동한다면, 원래 사용하던 브라우저의 캐시/데이터를 삭제하고, 문제를 일으키는 브라우저 확장 프로그램이 없는지 확인하세요.

Nginx 웹사이트에서 여전히 오류 500이 표시되는 경우 서버 관리자에게 문의하여 문제를 해결하십시오.

서버 측에서 Nginx 오류 500을 해결하는 방법은 무엇인가요?

이 오류는 간단한 구문 오류 또는 백엔드 애플리케이션 문제에서 발생할 수 있습니다. 오류 메시지가 근본 원인을 알려주지 않기 때문에 문제 해결이 어려울 수 있습니다. 하지만 걱정하지 마세요. 아래에서 설명하는 체계적인 접근 방식을 통해 문제를 해결할 수 있습니다.

1. 서버 과부하 여부를 확인하세요

서버에 과부하가 걸리면 필수 작업에 필요한 리소스가 부족하여 내부적으로 500 오류가 발생할 수 있습니다. Free, Top 또는 HTop 명령어를 사용하여 CPU 사용량, 메모리 사용량 및 디스크 공간 가용성을 확인하십시오. 아래 스크린샷은 top 명령어를 실행한 후의 출력 결과입니다.

서버 리소스 검증

서버에 과부하가 걸린 경우, Plus 리소스를 추가하면 Nginx 500 오류가 해결될 수 있습니다.

2. 작곡의 구문 검사

Nginx에서 500 오류가 발생하는 가장 일반적인 이유는 구성 구문 오류로 인한 잘못된 서버 설정입니다.

이 문제를 해결하려면 Nginx 설정 파일을 검토하고 구문 오류나 잘못된 지시문이 있는지 꼼꼼히 확인하십시오.

다음으로, Nginx 설정 파일에서 구문 오류나 잘못된 지시문이 있는지 검토하십시오. `nginx -t` 또는 `nginx -t -c /path/to/nginx.conf`와 같은 명령어를 사용하여 구문을 확인하고 오류를 찾아낼 수 있습니다. 터미널에서 다음 명령어를 실행하여 오류를 감지하십시오.

cd /etc/nginx/sites-available nginx -t

작곡의 구문을 확인합니다

다음 방법도 이용하실 수 있습니다.

nginx -t -c /path/to/nginx.conf

구문 오류가 감지되면 수정하고 다음 단계를 따라 Nginx를 재시작/재로드하십시오.

sudo service nginx restart nginx -s reload

경우에 따라 아래와 같이 구성 파일을 수정해야 할 수도 있습니다.

try_files와 try_files $uri =404

أو

try_files $uri $uri/ /index.html; with try_files $uri/ $uri /index.php?$query_string;

3. 서버 로그 확인

Nginx에서 500 오류가 발생하면 내부 오류 로그에 항목이 생성되는데, 이 로그를 통해 오류의 근본 원인을 파악할 수 있습니다. 서버 로그는 일반적으로 다음 위치에 있습니다.

/var/log/nginx/error.log

리눅스 배포판에서 서버 로그를 열려면 다음 단계를 따르십시오.

/var/log/nginx 디렉토리로 이동하여 오류 로그 파일을 확인하세요.

결과 페이지에서 근본 원인을 나타내는 지표를 검토할 수 있습니다. 예를 들어 아래 이미지를 참조하십시오.

서버 로그 확인 중

이는 SSL 인증서 문제로 인해 서버가 클라이언트와 SSL/TLS 연결을 설정할 수 없었음을 나타냅니다. 로그에서 문제를 확인한 후 온라인에서 가능한 원인과 해결 방법을 검색해 보세요.

폴더에 대한 "권한 거부" 오류로 인해 레지스트리를 열 수 없는 경우, Nginx.conf 파일에서 "user www-data"를 "user root"로 변경하십시오. 파일을 저장한 후 Nginx를 재시작하고 레지스트리를 다시 열어 보십시오.

4. 클라우드플레어 또는 유사 서비스를 일시적으로 비활성화하십시오.

서버에서 Cloudflare 또는 유사한 서비스를 사용 중인데 구성이 올바르지 않거나 최근 업데이트와 충돌하는 경우, 일시적으로 서비스를 비활성화하면 문제 진단에 도움이 될 수 있습니다.

  1. 이동 클라우드플레어 제어판 자격 증명으로 로그인합니다.
  2. 이동 회사 개요 (개요) 및 자세히 보기 Advnaced (고급 설정).
  3. 탭하다 웹사이트 일시 중지 (사이트를 일시 중지하고) 확인하세요. 호스팅 제공업체에서 Cloudflare 연동 기능을 제공하는 경우, 해당 기능도 비활성화해야 합니다.
  4. 사이트의 IP 주소가 올바른지 확인하고 Nginx 500 내부 서버 오류가 해결되었는지 확인하십시오. 사이트의 HTTP 및 HTTPS 버전을 모두 확인하는 것을 잊지 마세요. 웹사이트에서 CloudFlare를 비활성화하세요

5. 서버 인증서를 확인합니다.

현재 설정에서 인증서가 만료되었거나 유효하지 않게 된 경우 내부 서버에서 오류가 발생할 수 있습니다.

  1. Nginx를 사용하도록 구성 IP 웹사이트 주소이지 도메인 이름이 아닙니다. Nginx 설정에서 서버의 IP 주소를 사용하십시오.
  2. 장애를 입히다 SSL 인증 proxy_pass에 자체 서명 인증서를 추가하세요. Cloudflare 대시보드(SSL > 클라이언트 인증서)에서 생성할 수 있습니다.
  3. 서버가 정상적으로 작동하는지 확인하십시오. 정상적으로 작동한다면 인증 기관에 문의하거나 설정에서 인증서 구성에 오류가 있는지 확인하십시오.

6. 백엔드 애플리케이션에 오류가 있는지 확인하십시오.

Nginx가 클라이언트 요청을 다른 서비스로 리디렉션했는데 해당 서비스가 제대로 실행되지 않으면 500 오류가 발생합니다. 예를 들어, 서버가 클라이언트 요청을 NodeJS와 같은 백엔드 애플리케이션으로 리디렉션했는데 해당 애플리케이션이 제대로 작동하지 않으면 앞서 언급한 오류가 발생합니다.

서버 로그에 오류가 표시되지 않으면 일반적으로 백엔드 문제임을 의미한다는 점을 기억하세요.

이 문제를 해결하려면 백엔드 애플리케이션 로그에서 오류나 예외가 있는지 확인하세요. 예를 들어 WordPress에서는 다음 경로에서 NodeJS 로그를 찾을 수 있습니다.

/var/www/ .com/logs/error.log

7. 파일 권한 부족

Nginx 서버가 파일에 접근하거나 실행하는 데 필요한 권한이 없으면 500 오류가 발생합니다. 예를 들어, WordPress 사이트에서 Nginx 서버가 public_html 폴더의 PHP 또는 HTML 파일에 접근하거나 제공할 수 없는 경우 내부 서버 오류가 발생합니다.

이 문제를 해결하려면 서버가 접근하는 파일이나 디렉터리에 필요한 Nginx 권한을 명령어를 사용하여 수정하면 됩니다. chmod를일반적으로 디렉터리의 경우 755이고 파일의 경우 644입니다.

8. 추가 기능의 호환성 확인

플러그인은 서버 성능을 향상시키는 데 중요한 역할을 합니다. 그러나 제대로 작동하지 않거나, 오래되었거나, 과도하게 업데이트된 플러그인은 내부 서버 오류를 일으킬 수 있습니다. 예를 들어, 워드프레스 업데이트는 많은 플러그인이 호환되지 않게 되어 사이트 기능에 문제를 일으킬 수 있으며, 업데이트가 완료되면 정상적으로 작동합니다.

이 문제를 해결하려면 각 덧셈이 올바른지 확인하십시오. 모투아프카 서버 소프트웨어 및 기타 추가 기능을 확인해 보세요. 다소 번거로워 보일 수 있지만, 그만한 가치가 있습니다. 또는 모든 추가 기능을 비활성화하여 오류가 해결되는지 확인해 볼 수도 있습니다.

최근에 서버 소프트웨어를 업데이트했다면 다음을 시도해 보세요. (가능하다면) 이전 버전으로 되돌려 오류가 해결되었는지 확인하십시오. 이렇게 하면 업데이트가 문제의 원인이었는지 확인할 수 있습니다. 모든 추가 기능이 호환되는 것이 확인될 때까지 소프트웨어 업데이트를 연기할 수 있습니다.

9. 스크립트에 오류가 있는지 확인하십시오.

플러그인과 마찬가지로 스크립트는 특정 웹사이트 기능에 필수적입니다. 손상되었거나, 오래되었거나, 호환되지 않는 스크립트는 내부 서버 오류를 발생시킬 수 있습니다.

이 문제는 다음과 같이 해결할 수 있습니다. 스크립트 비활성화 Nginx 서버를 확인하십시오. 정상적으로 작동한다면 스크립트를 검토하고 문제를 일으키는 스크립트를 찾아보세요.

10. 서버 타임아웃 값을 늘리세요

서버 타임아웃 값이 Nginx 응답 시간보다 짧으면 내부 서버 오류가 발생합니다. 마찬가지로 서버 요청이 Nginx 응답 시간보다 오래 걸리면 문제가 발생합니다.

서버 타임아웃 값을 늘리면 문제가 해결될 것입니다. 자세한 지침은 온라인에서 찾아보실 수 있습니다.

11. 모든 리디렉션 프로세스가 정상적으로 작동하는지 확인하십시오.

Nginx를 프록시 서버로 사용할 때 모든 리디렉션 프로세스가 올바르게 작동하는지 확인하십시오. 서버가 클라이언트 요청을 백엔드 서버로 리디렉션할 수 없는 경우 500 오류가 발생합니다.

일시적으로 모든 리디렉션을 비활성화합니다. 정상 작동 여부를 확인하려면, 성공적으로 완료된 경우 각 프로세스를 개별적으로 재시작하여 오류가 발생한 리디렉션을 찾아내십시오. 오류가 발생한 리디렉션을 확인한 후에는 온라인에서 해당 리디렉션 오류의 원인과 해결 방법을 검색하십시오.

12. Nginx에서 PHP 사용하기

Nginx는 PHP를 기본적으로 지원하지 않으므로, Nginx에서 PHP 구성이 잘못되면 내부 서버 오류가 발생할 수 있습니다.

이 문제를 해결하려면 Nginx와 PHP 통합 설정을 확인하십시오. PHP 오류 표시가 비활성화된 경우, PHP에서 문제가 발생하면 서버는 Nginx 500 오류를 반환합니다. PHP 오류 표시를 활성화하면 문제 해결이 더 간편해집니다.

CentOS 7에서 다음 단계를 수행하십시오.

tail -f /var/log/php-fpm/www-error.log

대신, 다음으로 이동하세요

/etc/php.ini

그리고 변화

디스플레이_오류 = 꺼짐

나에게

display_errors = 켜짐

PHP-FPM과 같은 더 나은 PHP 프로세서를 찾아보고 Nginx 캐싱을 활성화하는 방법도 있습니다.

13. 미니멀리즘 접근 방식을 사용하세요.

오류 500을 여전히 해결할 수 없는 경우, 최소한의 접근 방식을 사용하여 문제를 해결할 수 있습니다.

  1. 만들어진 지원 사이트의 콘텐츠를 간단한 일반 텍스트가 포함된 index.html 파일로 교체하세요.
  2. 사이트가 제대로 작동하는지 확인하세요 공장 길찾기, 기능, 서비스, 플러그인, 스크립트 등을 하나씩 추가해 나가세요.
  3. 각 단계를 완료한 후에는 반드시 사이트를 테스트하여 문제가 다시 발생하는지 확인하십시오.
  4. 콘텐츠를 사이트에 다시 업로드하고 콘텐츠가 문제의 원인인지 확인하십시오.
  5. 문제의 원인이 되는 요소를 찾았다면 인터넷 검색을 통해 해결할 수 있습니다.

향후 Nginx 500 서버 오류가 재발하지 않도록 방지하는 방법

Nginx 500 오류가 다시 발생하는 것을 방지하려면 다음 단계를 따르십시오.

  • 정기적인 서버 유지 관리를 수행하십시오.
  • 사이트 코드와 콘텐츠(이미지, 동영상 등)가 사용 중인 설정에 최적화되어 있는지 확인하십시오.
  • 캐시를 통해 사이트를 제공하는 콘텐츠 전송 네트워크(CDN)를 구축합니다.

궁금한 점이 있으시면 댓글란에 남겨주세요.

댓글이 닫혀있다.