error
예를 들어, 아래와 같이 그룹핑하여 설정할 수 있습니다:
error_page 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 /custom_4xx.html; error_page 500 501 502 503 504 505 /custom_5xx.html;
이렇게 하면 4xx 계열 에러는 모두 /custom_4xx.html 파일을, 5xx 계열 에러는 /custom_5xx.html 파일을 반환하게 됩니다.
즉, 두 개의 에러 페이지 파일만 만들어도 충분합니다.
아울러, 각 에러코드가 의미하는 바를 간단히 정리하면 다음과 같습니다:
4xx 클라이언트 오류 (요청 관련 문제)
- 400 Bad Request: 클라이언트의 요청 문법 오류 등으로 인해 서버가 요청을 이해할 수 없음.
- 401 Unauthorized: 인증이 필요한 요청이지만 인증 정보가 없거나 유효하지 않음.
- 402 Payment Required: 현재는 거의 사용되지 않는 결제 요구(예약 상태).
- 403 Forbidden: 서버가 요청을 이해했지만, 접근 권한이 없어 거부됨.
- 404 Not Found: 요청한 자원을 서버에서 찾을 수 없음.
- 405 Method Not Allowed: 요청한 HTTP 메소드가 해당 리소스에서 허용되지 않음.
- 406 Not Acceptable: 클라이언트가 요청한 형식으로 응답을 제공할 수 없음.
- 407 Proxy Authentication Required: 프록시 서버에서 인증이 필요함.
- 408 Request Timeout: 클라이언트의 요청 시간이 초과됨.
- 409 Conflict: 요청이 현재 서버 상태와 충돌하여 처리할 수 없음.
- 410 Gone: 요청한 자원이 서버에서 영구적으로 사라짐.
- 411 Length Required: 요청에 Content-Length 헤더가 누락되어 있음.
- 412 Precondition Failed: 요청에 설정된 전제 조건이 서버에서 충족되지 않음.
- 413 Payload Too Large: 요청 본문이 서버가 처리할 수 있는 크기를 초과함.
- 414 URI Too Long: 요청한 URL이 너무 길어 서버가 처리할 수 없음.
- 415 Unsupported Media Type: 요청한 데이터의 미디어 타입이 지원되지 않음.
5xx 서버 오류 (서버 자체의 문제)
- 500 Internal Server Error: 서버 내부에서 예기치 못한 오류가 발생함.
- 501 Not Implemented: 요청한 기능이 서버에 의해 지원되지 않음.
- 502 Bad Gateway: 게이트웨이나 프록시 서버가 상위 서버로부터 잘못된 응답을 받음.
- 503 Service Unavailable: 서버가 과부하 또는 점검 등으로 인해 일시적으로 서비스를 제공할 수 없음.
- 504 Gateway Timeout: 게이트웨이나 프록시 서버가 상위 서버의 응답을 제 시간에 받지 못함.
- 505 HTTP Version Not Supported: 요청에 사용된 HTTP 버전이 서버에서 지원되지 않음.
따라서, 보안 요구사항에 맞게 에러 페이지를 설정하는 방법은 모든 관련 에러코드에 대해 적절한 페이지를 지정하는 것이며,
꼭 각각의 에러코드마다 개별 파일을 만들 필요 없이 4xx와 5xx처럼 범주별로 그룹화하여 하나의 공통 에러 페이지를 사용하는 방법이 일반적입니다.