미니옵빠의 code stubs

NGINX Redirect (rewrite) 적용 본문

Server/NGINX

NGINX Redirect (rewrite) 적용

미니옵빠 2017. 3. 6. 22:02

NGINX에서 redirect 를 적용하는 방법은 두 가지가 있음


1. rewrite 지시어


일반적으로 많이 쓰는 방법. 좀 지저분함


server {

    ...

    rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 last;

    rewrite ^(/download/.*)/audio/(.*)\..*$ $1/mp3/$2.ra  last;

    return  403;

    ...

}




2. return 지시어


rewrite 보다 간결하며 직관적임.


server {

    listen 80;

    listen 443 ssl;

    server_name www.old-name.com;

    return 301 $scheme://www.new-name.com$request_uri;

}



return 코드는 아래처럼 (1xx | 2xx | 4xx | 5xx) ["text']; 의 신텍스를 쓸 수 있다고 하지만, redirect 류인 3xx 가 아니면 동작을 안함 (이유는 못찾음 -_-)


return 401 "Access denied because token is expired or invalid";



3. try_files 지시어


내부 파일 및 디렉토리로 연결할 때


location /images/ {

    try_files $uri $uri/ /images/default.gif;

}


location = /images/default.gif {

    expires 30s;

}


참고: https://www.nginx.com/blog/creating-nginx-rewrite-rules/