nginx custom status code 응답처리

cors 가 허용되는 api 서버 앞단의 nginx reverse-proxy 서버에서
특정 처리시 request 에 대한 block처리를 해야한다.

block 내용을 json 포멧형식 + 490 커스텀 상태코드로 응답주어야 한다.

  • nginx 에서는 error_page 디렉티브로 에러상태 코드에대한 응답페이지를 지정할수 있다.
  • error_page 에 지정된 페이지 경로또한 nginx location에 의해 처리된다.
location / {#CORS 허용을 위한 응답 해더
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Methods' '*' always;
add_header 'Access-Control-Allow-Headers' '*' always;

if ($request_method = OPTIONS ) {
return 200 OK-Allowed;
}
return 490;
}

CORS 요청으로 nginx 가 호출되어질수 있게 하기 위해 OPTION 메소드를 제외하고는 커스텀 상태코드 490을 리턴한다.

error_page 490 /@block;

490응답에 대한 에러페이지를 지정한다. /@block

location /@block {

#혹시 모를 default type 설정
default_type application/json;
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Methods' '*' always;
add_header 'Access-Control-Allow-Headers' '*' always;

try_files /block.json /block.json /block.json;
}

/@block 에 대한 location 지정으로 응답 헤더에 대한 처리 또는 응답 파일을 지정가능하다.

Written by

엘디는 사랑입니다.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store