2018. 2. 26. 12:00 Linux Server/apache
[apache] http_error_code
[ http_error_code ]
HTTP(하이퍼텍스트 전송 프로토콜) 응답 상태 코드란 현제의 error 상태를 알려주는 코드입니다.
현재 상황에 맞게 error code 를 발생시키며 , 해당 코드를 보고 문제를 유추할수 있으며, 더욱 쉽게 문제를 해결할 수 있습니다. 현재 http_error_code는 인터넷 할당 번호 관리 기관 (IANA)에서 http 상태 코드를 관리 및 유지하며,
해당 에러코드들만 잘해독해도 문제를 해결하는데 많은 도움이 될거라고 생각됩니다.
코드 목록에 따른 상태
1xx (조건부 응답) – 요청이 수신되어 이해되었음을 나타내는 코드입니다.
2xx (성공) - 이 클래스의 상태 코드는 클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며 성공적으로 처리했음을 가리킵니다.
3xx (리다이렉션 완료) – 클라이언트는 요청을 마치기 위해 추가 동작을 취해야 함을 나타냅니다.
4xx (요청오류) – 이 클래스의 상태코드는 클라이언트에 오류가 있음을 나타냅니다.
5xx (서버오류) – 서버가 유효한 요청을 명백하게 수행하지 못했음을 나타냅니다.
2. http_error_code 원인 및 문제해결
2-1 4xx (요청오류) 원인 및 문제해결
400 Bad Request, 요청 실패
원인 : 문법상 오류가 있어서 서버가 요청 사항을 이해하지 못할때 발생되는 에러 해결방법 : 주소를 정확히 입력하거나 , 문법을 정확하게 입력하여 해결 |
401 코드 - Unauthenticated 인증실패
401 Bad Request, 요청 실패
원인 : 401 response(응답) 를 받은 클라이언트는 적절한 Authorization(권한부여) credentials(신용 증명 물)를 포함하는 Authorization 헤더와 함께 다시 Request 메시지를 전송합니다. Request 메시지에 그와 같은 Authorization credentials이 포함된 경우에 401 상태코드가 전달되면 user authentication(인증)이 실패한 것을 나타낸다. 해결방법 : 즉 인증에 실패한것임으로 적절한 권한이 있는 사용자로 인증을 받아 해결 |
401.1 Unauthorized, 권한 없음 로그온 실패
원인 : 서버에 로그온 하려는 요청 사항이 서버에 들어있는 권한과 비교했을 시 맞지 않을 경우 발생. 해결방법 : 아이디 및 패스워드를 정확하게 입력하여 해결 |
401.2 Unauthorized, 권한 없음
원인 : 서버에 로그온 하려는 요청사항이 서버에 들어있는 권한과 비교했을 때 맞지 않았을 경우 발생 이것은 일반적으로 적절한 www-authenticate head field를 전송하지 않아서 발생함. 해결방법 : 적절한 www-authenticate head field를 전송하여 해결 |
401.3 Unauthorized, 권한 없음 - 자원에 대한 ACL에 기인한 권한 없음.
원인 : 클라이언트가 특정 자원에 접근할 수 없을 때 발생. 이 자원은 페이지가 될 수도 있고, 클라이언트의 주소 입력란에 명기된 파일일 수도 있다. 또한, 클라이언트가 해당 주소로 접속할 때 이용되는 또 다른 파일일 수도 있습니다. 해결방법 : 접근할 전체 주소를 다시 확인해 보고 웹 자원에 접근할 권한을 부여받아 해결 |
403 코드 – Forbidden 인가실패
403.1 Forbidden, 금지 - 실행 액세스 금지
원인 : CGI나 ISA-PI, 혹은 수행시키지 못하도록 되어 있는 디렉터리 내의 실행 파일을 수행시키려고 했을 때 발생 해결방법 : 해당 기능을 사용할수 있도록 설정 및 권한등을 부여하여 해결 |
403.2 Forbidden, 금지 – 읽기 엑세스 금지
원인 : 원인 : 브라우저가 접근한 디렉터리에 접근가능한 디폴트 페이지가 없을 경우에 발생 해결방법 : 해당 디렉터리에 접근 가능한 디폴트 페이지를 생성하거나 권한을 부여하여 해결 |
403.3 Forbidden, 금지 – 쓰기 엑세스 금지
원인 : 원인 : 브라우저가 접근한 디렉터리에 쓰기 가능한 권한이 부여되지 않았을 때 발생 해결방법 : 해당 디렉터리에 쓰기 가능한 권한을 부여하여 해결 |
403.4 Forbidden, 금지 – SSL 필요
원인 : SSL(https) 프로토콜을 사용 하여 들어오는 요청을 원하지만 http 프로토콜 사용하여 요청을 보낼때 발생 해결방법 : https로 시작하는 URL 확인 하거나 , 서버에서 웹사이트에 대한 ssl 필요 옵션을 제거하여 해결 |
403.5 Forbidden, 금지 – SSL 128bit 필요
원인 : 웹서버가 128bit SSL 연결을 요구 하도록 구성되어 있지만 클라이언트 브라우저에서 128bit 암호화를 지원하지 않을때 발생 해결방법 : 클라이언트에서 128bit ssl을 지원하는 웹 브라우저를 사용하거나 , 웹서버에서 SSL 통신의 보안 수준을 낮추어 문제 해결 |
403.6 Forbidden, 금지 – IP 주소 거부
원인 : IpSecurity XML 요소의 allowUnlisted 속성의 값은 false이며, 클아이언트 컴퓨터의 IP주소 ipSecurity XML 요소 아래에 IP주소 목록에 나타나지 않습니다. IIS IP주소 ipSecurity XML 요소 아래 목록에 표시 되지 않는 IP 주소에서 모든 요청을 거부하기 때문에 발생 해결방법 : IpSecurity XML 요소를 찾은 후 allowUnlisted 속성의 값을 true로 설정하거나, IpSecurity XML 요소 아래 IP 주소의 목록에서 클라이언트 컴퓨터의 IP 주소를 찾아 수 속성의 값을 true로 설정하여 해결가능 하지만 서버 보안 수준이 떨어질 수 있음. |
403.7 Forbidden, 금지 – 클라이언트 인증서 필요
원인 : 클라이언트 확인 필요. 이 에러는 접근하려는 자원이 서버가 인식하기 위해서 브라우저에게 클라이언트 SSL을 요청하는 경우 발생함. 자원을 이용할 수 있는 사용자임을 입증하는데 사용됨 해결방법 : 웹사이트에서 신뢰하는 인증기관에서 클라이언트 인증서를 발급받아 인증서를 구성하여 해결 하거나, 웹서버에서 SSL 설정값에서 클라이언트 인증서에서 수락 옵션을 선택 및 적용하여 문제해결 |
403.8 Forbidden, 금지 – 사이트 액세스 거부
원인 : 웹사이트 명시적으로 클라이언트 컴퓨터에서 요청을 거부 하도록 구성되어있기 때문에 발생. IIS는 클라이언트 컴퓨터의 DNS 이름을 확인 하여 명시적으로 요청을 거부함 해결방법 : ApplicationHost.config 파일에서 IpSecurity XML 요소에서 true로 클아이언트 컴퓨터에 대한 도메인 이름 XML요소의 수 속성값을 설정 ( domainName 추가 = “Client_Computer” 허용 = “true” /> ) |
403.9 Forbidden, 금지 – 연결된 사용자수 과다
원인 : 웹 서버에 연결한 사용자의 수가 웹서버 관리자가 설정한 연결 제한을 초과한 경우에 발생 해결방법 : 웹 서버에 연결할 수 있는 제한을 늘려 해당 문제 해결 |
403.10 Forbidden, 금지 – 설정이 확실하지 않음
원인 : 웹 서버의 설정쪽에 문제가 있어 접근이 불가능 할 경우에 발생 해결방법 : 웹 설정을 알맞게 변경하여 문제 해결 |
403.11 Forbidden, 금지 – 패스워드 변경됨
원인 : 사용자 확인단계에서 잘못된 패스워드를 입력했을 경우 발생 해결방법 : 페이지를 갱신한 후 정확한 패스워드를 입력하여 문제 해결 |
403.12 Forbidden, 금지 – Mapper 접근 금지
원인 : 클라이언트 인증서 매핑 구성된 사용자 계정이 요청된 파일에 대한 읽기 권한이 없기 때문에 발생 해결방법 : 해당 파일에 대해 읽기 권한을 부여하여 해결 |
404 Not Found
원인 : 클라이언트가 요청한 디렉터리나 파일이 웹서버에 존재하지 않았을때 발생 해결방법 : URL을 다시 잘 보고 주소가 올바로 입력되었는지 확인 |
404.2 Not Found – ISAPI 또는 CGI가 제한됨
원인 : ISAPI 인터넷 서버 API 리소스나 요청한 CGI 리소스가 제한되어 발생 해결방법 : ISAPI 및 CGI 제한 페이지에서 요청한 자원의 제한을 허용하여 해결 |
404.3 Not Found – MIME 형식제한
원인 : 요청된 파일 이름 확장명에 대한 처리기 매핑이 구성되어 있지 않을 때 발생 해결방법 : MIME 형식에서 필요한 파일 및 MIME 형식 확장자명을 추가하여 문제 해결 |
404.7 Not Found – 파일 확장명이 거부됨
원인 : 윈도우 서버일 경우 allowUnlisted 특성이 false로 설정되어 있거나 , 서버 내에서 해당 파일의 파일이름 확장명이 표시되어 있지 않을때 발생 해결방법 : ApplicationHost.config 파일에서 RequestFiltering 섹션에서 FileExtensions allowUnlisted 값을 true로 변경하거나, 해당파일의 확장자가 보이도록 보기옵션을 변경하여 문제 해결 |
404.9 Not Found – 파일 특성이 숨겨짐
원인 : 요청한 파일이 숨겨져 있을때 해방 문제 발생 해결방법 : 해당파일이 숨겨져 있으며, 숨겨져 있는 옵션을 취소하여 문제 해결 |
405 Method not allowed
원인 : Request 라인에 명시된 메소드를 수행하기 위해 해당 자원의 이용이 허용되지 않았을때 발생 해결방법 : 요청한 자원에 적절한 MIME 타입을 갖고 있는지 확인 후 MIME타입을 적절하게 입력할 것 |
407 – Proxy Authentication Required
원인 : 해당 요청이 수행되도록 Proxy 서버에게 인증을 받아야 할때 발생 해결방법 : Proxy 서버로 로그온 한 후에 다시 시도하여 해결 |
408 Request timeout
원인 : 레지스트리에 문제가 발생하였거나, 악성 프로그램 감염이 되었거나 , 디스크 문제 등으로 요청이 지연되는 경우에 해당 문제 발생 해결방법 : 손상된 레지스트리를 복원 , 악성프로그램 제거 , 디스크 문제 확인 등으로 해당문제 해결 |
2-2 5xx (요청오류) 원인 및 문제해결
500 서버 내부 오류
원인 : syntax error , 권한 , 변수정의 , 특수문자 처리 , 전송방식 지정 , 데몬상태 등 다양한 이유로 요청사항이 서버 내부에서 수행할 수 없을 때 발생 해결방법 : 사실상 500에러는 상당히 광범위하며, 500에러가 발생하였을때 서버 내부에서 확인해야 한다. 문법확인 , 권한지정 , 변수 및 특수문자처리부분 , 데몬의 버전이 안맞는다거나, 데몬이 멈춰있다거나 등의 이유로 발생하는데, 각각의 증상에 따라 적절하게 대응하여 문제를 해결 |
501 서버 내부 오류 – Not Implemented
원인 : 시스템에서 CGI를 지원하지 못하도록 막아두었거나, CGI설정이 제대로 되어있지 않을 경우 발생 해결방법 : CGI를 사용할수 있도록 수정을 하여 문제를 해결 |
502 서버 내부 오류 – Bad Gateway
원인 : 접속자수가 많아 과부하 상태거나 , 클라이언트 브라우저에 이상이 있을때 문제 발생 해결방법 : 주로 과부하 상태일때 많이 발생되며, 서버 사양을 업그레이드 하거나, 사용자가 많지 않을때 접근하거나 , 웹서비스를 재시작하여, 일시적으로 문제를 해결 |
503 서버 내부 오류 – server Unavailable
원인 : 서비스가 현재 멈춘 상태이거나 일시적인 과부하 상태 및 관리(유지,보수) 때문에 요청을 처리하지 못할 경우 발생 해결방법 : 관련 데몬이 다운되어있을 가능성이 크며, 해당 데몬을 실행시켜 문제 해결 |
3. 에러페이지 변경
3-1 기본 에러페이지 변경
http_error_code를 발생시키는데 클라이언트들에게 이러한 코드를 보여줄 필요는 없다고 생각합니다.
httpd.conf 파일에 아래내용을 추가하여 해당 에러코드가 발생될때 특정 페이지를 보여주도록 설정할수 있습니다.물론 해당 페이지의 소스코드는 직접 개발해야 합니다.
httpd.conf 파일 수정
Alias /error_page "/home/les" → error_page의 경로 설정 Alias /error_image "/home/les" → error_page의 경로 설정 ErrorDocument 404 /error_page/404.htm → 404 error_page의 보여질 페이지의 파일 경로 ErrorDocument 403 /error_page/403.htm → 403 error_page의 보여질 페이지의 파일 경로 위처럼 원하는 에러코드의 번호를 추가하여 해당 에러코드가 발생될때 특정 페이지가 보이도록 설정가능합니다 |
아파치 설정하기 전 404에러가 발생하였을때 기존 페이지
아파치 설정 후 404에러가 발생하였을때 페이지
'Linux Server > apache' 카테고리의 다른 글
[apache] ip 접속 제어 (0) | 2018.02.09 |
---|---|
[apache] letsencrypt 설치 및 설정 (2) | 2017.08.03 |
[apache] ssl 키 발급 및 적용 (0) | 2017.06.03 |
[php 언어셋 문제] (0) | 2017.05.09 |
[apache] cband 모듈설치 (0) | 2017.04.27 |