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 지정으로 응답 헤더에 대한 처리 또는 응답 파일을 지정가능하다.