아래 방법은 완벽한 해결책이 아니다
---
문제상황은 아래와 같다
웹서버를 운영하다가, 새로운 버전을 개발하였다
이것을 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/