서버

Apache ErrorDocument 설정

창욱씨 2020. 6. 9. 17:25

 Apache 서버를 운영 중에 오류가 발생했을 때, 404 not foud error, 500 Internal Server Error 등의 에러 메시지가 그대로 노출됩니다. 개발 시 에러 메시지가 노출되면 오류 메시지를 바로 확인 가능하기 때문에 개발하는 입장에서는 수정 개발이 용이한 장점이 있습니다. 하지만 시스템 운영 시에는 일반 사용자가 알 수 없는 에러 메시지를 볼 필요가 없습니다. 또한 오류 발생 시 서버 경로도 노출되기 때문에 프로그램을 조금이라도 아는 사람이 의도치 않은 경로로 접속할 수도 있습니다. 이러한 상황을 방지하기 위해서는 오류 발생 시에 개발자가 의도한 화면이 보여지도록 처리해야 합니다. 이러한 처리는 Apache의 기본 설정을 해주는 httpd.conf 파일에서 할 수 있습니다.

텍스트 표시

ErrorDocument 500 "서버에 오류가 발생했습니다."
# 500 메시지를 '서버에 오류가 발생했습니다.'라는 문구로 변경합니다.
# response하는 http code는 404입니다. 

local redirect

ErrorDocument 500 "/error.html"
# 500 메시지를 error.html의 내용으로 변경합니다.
# response하는 http code는 404입니다.

 local redirect는 root path로 인식하는 DocumentRoot를 확인합니다. 따라서 항상 root path를 확인해주거나 변경해 주어야합니다. 만약 root path를 변경한 후 설정을 한다면 아래와 같이 진행하면 됩니다.

DocumentRoot "설치경로"
...
ErrorDocument 404 "/errorpage/error404.html"
ErrorDocument 500 "/errorpage/error500.html"

 이와 같이 작성하면 "설치경로/errorpage/error404.html"에 있는 페이지로 전환하게 됩니다.

external redirect

ErrorDocument 500 "http://localhost/error.html"
# 해당 페이지로 redirect 요청 합니다.
# response하는 http code는 redirect이기 때문에 302입니다.
# 따라서 client가 메시지 Page를 다시 호출하게 됩니다. 
728x90