Skip to main content

[Nginx] Reverse Proxy

· 2 min read

개발 산출물에 대하여 하나의 서비스 포트에서 개발 브랜치에 따라 라우팅 처리를 하여 접속이 가능하도록 구성을 할 필요가 있어서 Proxy 설정을 Nginx에 적용해보았다. nginx의 reverse proxy를 활용하여 설정한 기록

nginx.conf

StackOverflow의 글을 참고하여 location의 설정을 정규식 패턴을 이용하여 정의한 후에 읽어들인 변수를 기반으로 경로를 찾아서 static 페이지를 보여주도록 처리하였다.

server {
listen 10080;
server_name _;

root /home1/irteam/deploy/storybook;
index index.html;

location ~* ^/(?<branch>(\w+))/(.*) {
root /home1/irteam/deploy/storybook;
}

location / {
if ($arg_branch) {
rewrite ^ /$arg_branch break;
}

rewrite ^ /master break;
}
}

위와 같이 설정 후에, nginx를 재기동 후 테스트를 해보면..

도메인 주소로 접근을 하게 되면 아래와 같이 빌드하여 배포해둔 스토리북 화면으로 리다이렉트 되어 보여진다. master

그리고 {도메인 주소}?branch=dev를 요청을 하면 **location ~_ ^/(?<branch>(\w+))/(._)** 에 정의한 root 경로 하위에서 해당 파일을 찾아서 노출해준다. dev

Reference