작성
·
185
0
app.use(express.static(""));를 단지 정적 파일들의 서비스할 경로를 지정한다는 건 이해했습니다. 하지만 이전, 위 사진과 같이 강사님의 수업에서 html, css, js들이 모여있는 파일을 지정하기 위해 Nginx 설정 파일에서 루트 경로를 설정한다고 배웠습니다.
그래서 이 설정만으로 서비스하는데 문제가 없지 않을까?? 라는 판단이 돼, app.use(express.static(""));를 해줘야 하는 이유를 잘 모르겠습니다. (물론, 이 코드를 지우고 한번 실행시켜봤지만 오류가 발생하는 것을 인지했습니다. 이유는 모르겠습니다. ㅠㅠ)
무슨 이유에 app.use(express.static("")); 사용해 줘야 하는 것인가요??
답변 1
1
안녕하세요.
강의 내용에 따르면 nginx는 도메인으로 접속하면 모든 요청을 reverse proxy를 사용해 3000번 포트로 요청을 넘깁니다.
즉, 모든 요청을 express에게 넘기게 되는 것인데요.
이러면 express에서 직접 정적파일을 제공할 수 있어야 합니다.
그렇기 때문에 app.use(express.static("")); 을 사용해주는 것입니다.
nginx가 정적파일을 제공하게 하고 express는 순전히 api 로직만 수행하고 싶게 하려면,
api용 서브도메인을 생성하고
nginx 설정파일에 서브도메인 블록을 설정한다음 그 블록에서만 3000번 포트로 프록시를 걸어서 해결할 수 있습니다.
정리하자면, 하나의 도메인에 모든 요청을 express로 넘겨서 nginx는 라우터 역할만 시키고 있는 것입니다. 때문에 express에서 직접 정적파일을 제공할 수 있게 해줘야 하는 상태라고 이해하시면 되겠습니다.
감사합니다.