인프런 커뮤니티 질문&답변

wjdgh2709님의 프로필 이미지
wjdgh2709

작성한 질문수

비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지

배포 - HTTPS 적용 후 추가작업 (reverse proxy, code pull)

app.use(express.static("")); 사용이유

작성

·

185

0

app.use(express.static(""));를 단지 정적 파일들의 서비스할 경로를 지정한다는 건 이해했습니다. 하지만 이전, 위 사진과 같이 강사님의 수업에서 html, css, js들이 모여있는 파일을 지정하기 위해 Nginx 설정 파일에서 루트 경로를 설정한다고 배웠습니다.

그래서 이 설정만으로 서비스하는데 문제가 없지 않을까?? 라는 판단이 돼, app.use(express.static(""));를 해줘야 하는 이유를 잘 모르겠습니다. (물론, 이 코드를 지우고 한번 실행시켜봤지만 오류가 발생하는 것을 인지했습니다. 이유는 모르겠습니다. ㅠㅠ)

무슨 이유에 app.use(express.static("")); 사용해 줘야 하는 것인가요??

답변 1

1

Jiwoon Jeong님의 프로필 이미지
Jiwoon Jeong
지식공유자

안녕하세요.

강의 내용에 따르면 nginx는 도메인으로 접속하면 모든 요청을 reverse proxy를 사용해 3000번 포트로 요청을 넘깁니다.

즉, 모든 요청을 express에게 넘기게 되는 것인데요.

이러면 express에서 직접 정적파일을 제공할 수 있어야 합니다.

그렇기 때문에 app.use(express.static("")); 을 사용해주는 것입니다.

 

nginx가 정적파일을 제공하게 하고 express는 순전히 api 로직만 수행하고 싶게 하려면,

api용 서브도메인을 생성하고

nginx 설정파일에 서브도메인 블록을 설정한다음 그 블록에서만 3000번 포트로 프록시를 걸어서 해결할 수 있습니다.

 

정리하자면, 하나의 도메인에 모든 요청을 express로 넘겨서 nginx는 라우터 역할만 시키고 있는 것입니다. 때문에 express에서 직접 정적파일을 제공할 수 있게 해줘야 하는 상태라고 이해하시면 되겠습니다.

 

감사합니다.

wjdgh2709님의 프로필 이미지
wjdgh2709

작성한 질문수

질문하기