아래 방법은 완벽한 해결책이 아니다


---


문제상황은 아래와 같다


웹서버를 운영하다가, 새로운 버전을 개발하였다

이것을 legacy web과 new web이라고 할 때, 


legacy web 리소스들을 옮기지 않고, new라는 directory를 생성하여

new directory를 root로서 serving하고싶다

이러한 설정은?


<port로의 분리는 간단>

이 둘을 서로다른 port로 분리한다면 config에서 server block을 하나 더 작성하면 된다

하지만, 우리의 요구사항을 수용하려면 location으로 분리해야한다


중요한 것은, root가 아니라 alias를 사용해야 한다는 것이다


location / {

    alias /var/www/html/new;

}


location /legacy {

    alias /var/www/html;

}


location /static {

}


 - alias를 이용하면 /var/www/html이 아닌 다른 디렉토리를 통해서도 serving이 가능하다

 - /static/*의 경우, 원래의 것을 그대로 사용하기 위해 location /static block만 작성하였다 (명시하지않으면 /new/static/*으로 연결됨)


---


이슈: 상대경로를 통한 서브 디렉토리 사용 시, 즉

/legacy location에서 dist/build.js라는 상대경로를 통하여 요청 시,

/legacy/dist/build.js로 요청이 들어오는데

이는 location /legacy/dist에 해당하는 듯 하다


location block에 정규표현식을 사용하는 것이 가장 간단한 해결방법인듯 하다


'Web' 카테고리의 다른 글

[Web] react-router, vue-router  (0) 2018.04.02
[Web] React vs Vue (Javascript Library/Framework)  (0) 2018.03.31
[web] xpath syntax  (0) 2018.03.29
[Web] javascript function alias (getElementById)  (0) 2018.03.29
[Web] react form onChange  (0) 2018.03.29

WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/