Nginx

Nginx 에러 페이지 처리

sscenic·2014년 4월 7일·조회 31,582

안녕하세요. scenic 입니다. 

오늘은 Nginx 에서 에러 페이지를 처리하는 설정에 대하여 정리하였습니다.

먼저 기본적인 특정 디렉토리에 대한  404 에러 페이지 처리입니다.

location /test {
    error_page    404 = /error_404.html;    
}
 
 

아래와 같이 여러 에러 코드들을 한번에 처리도 가능합니다. 

location /test {
    error_page 500 502 503 504 = /error.html
}
    
 

그리고 server 단에서 설정을 추가하여 하여 해당 호스트 전체에 에러 페이지 처리도 가능합니다.

server {
      listen 80; 
     sever_name localhost    
       error_page  404 = /error_404.html;
     ... 
             location /test {
                   ...      
                }

} 

http 테그내의 upstream 서버 설정을 이용하여 아래와 같이 특정 URL로 에러 페이지 설정을 할 수도 있습니다. 

upstream error {
  server 10.130.10.23:80;
}


server {
                   location /test {
                                     error_page    404 = @try_server2;        
                                 }
                    location @try_server2 {
                                      proxy_pass http://error;
                                }
}
 
 

이외에도 에러 페이지 처리하는 설정은 다양한데,  NginX 에서는 비교적 정교하게 에러페이지 처리가 가능한 것으로 보입니다. 

이상입니다.

댓글 2

로그인 후 댓글을 남길 수 있습니다.

  • 강철지그강철지그· 2014년 4월 11일
    혹시 proxy_intercept_errors on; 라는 것에 대해 알려주실 수 있어요?
  • sscenic· 2014년 4월 14일
    proxy_intercept_errors on; 을 사용하면 뒷단의 WAS 또는 목적지 서버의 에러코드에 대해서 처리를 할 수있습니다. location ~ \.jsp$ { proxy_pass http://00.00.00.0:80; proxy_intercept_errors on; error_page 404 http://00.00.00.0:80/error.jsp; } 위와같이 설정을 한 후 jsp 확장자에 대해 404 에러가 발생하도록 url을 호출하여보니 미리 설정한 error.jsp 가 호출되네요.