아마존라이트세일 비트나미 워드프레스 블로그에서 408 오류가 발생할 때 해결 방법은?
오늘 새벽에 아파치 웹서버가 또 다운되었다. 원인을 확인하기 위해 error_log 파일을 FTP로 다운받은 후 서버 다운시간 로그를 확인하였다.
[Wed Jan 17 16:50:53.921348 2024]
[mpm_event:notice]
[pid 747:tid 139678455180544]
AH00491: caught SIGTERM, shutting down
그리고 access_log파일을 FTP로 다운받은 후 셧다운 이전의 로그를 확인하였다.
52.78.174.152 - - [17/Jan/2024:16:33:22 +0000] "POST /wp-cron.php?doing_wp_cron=1705509202.3372929096221923828125 HTTP/1.1" 200 -
61.43.123.22 - - [17/Jan/2024:16:33:27 +0000] "-" 408 -
61.43.123.22 - - [17/Jan/2024:16:33:51 +0000] "-" 408 -
61.43.123.22 - - [17/Jan/2024:16:33:51 +0000] "-" 408 -
52.78.174.152 - - [17/Jan/2024:16:34:46 +0000] "POST /wp-cron.php?doing_wp_cron=1705509286.0885798931121826171875 HTTP/1.1" 200 -
52.78.174.152 - - [17/Jan/2024:16:35:55 +0000] "POST /wp-cron.php?doing_wp_cron=1705509355.3590059280395507812500 HTTP/1.1" 200 -
52.78.174.152 - - [17/Jan/2024:16:37:28 +0000] "POST /wp-cron.php?doing_wp_cron=1705509448.7402470111846923828125 HTTP/1.1" 200 -
52.78.174.152 - - [17/Jan/2024:16:38:31 +0000] "POST /wp-cron.php?doing_wp_cron=1705509511.8782351016998291015625 HTTP/1.1" 200 -
408 타임아웃 오류가 발생중이였고, 무엇보다 누군가가 wp-cron.php로 접근하여 글 작성을 4번 시도했음을 확인하였다. 그래서 서버가 죽었다고???
HTTP 408 오류 코드의 의미
느린 클라이언트 요청으로 인해 서버 시간 초과가 발생하면 HTTP 408 상태 코드가 반환된다. 이는 서버가 연결을 종료하여 클라이언트가 408 요청 시간 초과 메시지를 수신했음을 의미한다.
HTTP 408 요청 시간 초과 오류의 일반적인 원인 탐색
408 요청 시간 초과 오류의 발생은 다양한 요인에 기인할 수 있다.
1. 서버 과부하
서버가 들어오는 요청이 너무 많아서 할당된 시간 내에 모든 요청에 응답하는 데 어려움을 겪을 수 있다. 결과적으로 일부 요청이 시간 초과되어 408 오류가 발생할 수 있다.
2. 네트워크 문제
약하거나 신뢰할 수 없는 인터넷 연결로 인해 408 요청 시간 초과 오류가 발생할 수도 있다.
3. 대용량 파일 다운로드
비디오나 이미지와 같은 대용량 파일을 다운로드하려고 하면 408 요청 시간 초과 오류가 발생할 수 있다. 서버가 파일을 느리게 전송하는 경우 브라우저는 대기 시간이 길어져 요청이 실패한 것으로 간주할 수 있다.
4. 서버 유지 관리
서버 유지 관리 또는 업데이트 중에 서버를 일시적으로 사용할 수 없는 기간이 발생할 수 있다. 이 시간 동안 서버에 액세스하면 요청에 응답할 수 없으므로 408 오류가 발생할 수 있다.
5. 방화벽 또는 보안 설정
어떤 경우에는 엄격한 방화벽이나 보안 설정으로 인해 브라우저와 서버 간의 통신이 방해를 받을 수 있다. 서버의 응답이 차단되거나 지연되면 요청 시간 초과가 발생할 수 있다.
6. 프록시 서버 문제
프록시 서버를 사용하여 인터넷에 연결하는 경우 설정이 잘못되었거나 프록시 서버 연결 문제로 인해 408 오류가 발생할 수 있다. 프록시 서버가 대상 서버와 적시에 연결을 설정하지 못해 시간 초과가 발생할 수 있다.
HTTP 408 오류를 해결하는 방법
클라이언트 측 문제 해결
클라이언트 측이란 웹 브라우저나 애플리케이션이 서버에 요청을 보내는 사용자 측을 의미다. 클라이언트 측 문제에는 요청 시간 초과를 유발할 수 있는 네트워크 문제, 브라우저 설정 또는 대용량 파일 다운로드가 포함될 수 있다.
다음은 HTTP 408 오류를 해결하는 데 도움이 될 수 있는 클라이언트 측의 몇 가지를 나열하였다.
1. 최근 데이터베이스 수정 사항 검토
HTTP 408 오류의 잠재적인 원인으로 최근 데이터베이스 변경 사항을 확인해보고, 문제를 해결하려면 최근 수정 사항을 되돌린다. 데이터베이스 기록을 변경하여 충돌이나 오류를 일으킬 수 있는 설치된 확장이나 업데이트에 주의한다. 예를 들어, phpMyAdmin 과 같은 데이터베이스 관리 도구를 사용하여 새 플러그인으로 수정된 특정 테이블을 확인한다..
또한 최근 수정된 테이블이나 레코드에서 HTTP 408 오류를 일으키는 변경 사항을 수동으로 검토해본다. 문제가 있는 변경 사항을 원래 상태로 되돌린다.
2. 사이트 백업 수행
HTTP 408 오류 문제를 해결하기 위한 예방 조치로 웹사이트 백업을 우선적으로 수행해야 한다. 파일과 데이터베이스를 보호하려면 포괄적인 백업을 만드는 것이 좋다.
3. URL 확인
때로는 특정 자격 증명이 필요한 URL이 실수로 요청되어 요청 시간이 초과되는 경우 HTTP 408 오류가 발생할 수 있다.
가능한 원인: 브라우저에 URL을 잘못 입력했습니다. 다음 조치를 취하는 것이 좋다.
- 도메인 이름, 슬래시, 하이픈 등 URL에 오타가 있는지 확인.
- 오타가 의심되는 경우 URL을 다시 입력하고 페이지를 새로 고친다.
4. 최근 업데이트 되돌리기
최근 변경 사항을 롤백하고 WordPress 사이트의 HTTP 408 오류를 해결하려면 최근 변경 사항(예: 새 플러그인 설치 또는 WordPress 업데이트)으로 인해 오류가 발생한 경우 사이트를 이전 버전으로 복원하는 것이 좋다.
5. 확장 및 플러그인 제거
웹사이트에 확장 프로그램과 플러그인을 추가하면 HTTP 408 상태 코드를 포함한 호환성 문제와 오류가 발생할 수 있다. 이것이 원인인지 조사하려면 다음 단계를 수행할 수 있다.
- WordPress 대시보드에서 모든 플러그인을 비활성화 한다.
- 플러그인 섹션 으로 이동하여 설치된 모든 플러그인을 선택.
- 대량 작업 드롭다운 메뉴에서 ‘ 비활성화 ‘를 선택하고 ‘ 적용 ‘을 클릭.
- 비활성화 후 오류가 해결되었는지 확인.
- 플러그인을 하나씩 다시 활성화하고 오류가 다시 발생하는지 관찰. 오류를 일으키는 문제가 있는 플러그인을 찾아낸다.
- 문제가 있는 플러그인을 제거 하고 적절한 대안을 찾거나 플러그인 개발자에게 문의하여 추가 지원을 받는다.
서버 측 문제 해결
서버측은 클라이언트의 요청을 수신하고 처리하는 서버를 의미한다. 서버 측 문제에는 서버 과부하, 유지 관리 또는 서버가 할당된 시간 내에 응답할 수 없어 408 오류를 발생시키는 잘못된 구성이 포함될 수 있다.
이전 솔루션으로 HTTP 408 오류가 해결되지 않은 경우 문제는 서버 측에 있을 가능성이 높다. 이러한 경우 오류를 해결하려면 대체 솔루션을 모색해야 한다.
6. 애플리케이션 로그 검토
두 가지 방법으로 서버 측 관점에서 HTTP 408 오류 문제를 해결할 수 있다.
WordPress를 사용하는 경우 wp-config.php 파일에서 WordPress 디버깅 모드를 활성화하여 로그에 액세스할 수 있다. 다음 코드를 삽입하기만 하면 된다.
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
7. 앱 또는 스크립트 문제 해결
디버깅은 코드의 버그나 오류를 식별하고 해결하는 프로세스를 의미한다. 웹사이트에서 여전히 HTTP 408 오류가 발생하는 경우 사이트를 디버깅해야 한다. WordPress 사이트의 버그 모니터링 프로세스를 단순화하려면 WordPress 디버깅 플러그인을 활용할 수 있다.
쿼리 모니터(Query Monitor)를 사용해보자
쿼리 모니터는 WordPress 대시보드에 개발자 도구 패널을 추가하는 WordPress 플러그인이다. 데이터베이스 쿼리, PHP 오류, HTTP API 호출, 후크 및 작업, 편집기 블록 비활성화, 대기열에 추가된 스크립트 및 스타일시트를 제공한다.
쿼리 모니터를 사용하면 효과적인 디버깅을 위한 광범위한 정보를 수집할 수 있다. 모니터링이 끝났다면 쿼리 모니터 플러그인을 비활성화 해야한다. 서버에 부하를 주기 때문이다.
별첨:
4xx: 클라이언트 오류
이 오류는 클라이언트 측 오류인 경우 사용자에게 다시 전송된다. 사용자는 잘못된 요청, 찾을 수 없는 콘텐츠 또는 콘텐츠에 대한 무단 액세스 또는 이와 유사한 결과에 대한 알림을 받는다.
400 – 잘못된 요청
401 – 승인되지 않음
402 – 지불 필요
403 – 금지
404 – 찾을 수 없음
405 – 허용되지 않는 방법
406 – 허용되지 않음
407 – 프록시 인증 필요
408 – 요청 시간 초과
409 – 충돌
410 – 사라지다
411 – 길이 필요
412 – 전제 조건 실패
413 – 요청 항목이 너무 큼
414 – 요청 URI가 너무 깁니다.
415 – 지원되지 않는 미디어 유형
416 – 요청 범위가 충족되지 않음
417 – 예상 실패