React 만들었는데 외부 접속이 안됩니다.
조회수 4508회
webpack 설치 안하고, Create-React-App 으로 만들었고,
Express 연동 시켜놓은 상태입니다.
React(클라), Express(서버) 둘 다 실행 하고나서
외부 접속 (모바일 LTE나 외부 PC에서 접속)하려니 안되는데..
[ Invalid Host Header ] 라고 나옵니다.
포트는 3000번대로 방화벽도 열어놓고 했는데... 열려있는 상태입니다.
... 안되는 이유가 뭔가요?
구글 검색해보니 webpack 사용해서 proxy 쓰는거 해보려고 해도 에러가 나서..
아시는분 있으신지 궁금합니다!
혹시.. react를 꼭 빌드 후에 배포시켜야 하나요?
현재는 npm start를 사용해 작동 여부만 확인했고, localhost:3000 잘 접속됩니다.
(proxy : { {웹 주소}:50000 } 써서 50000번대 포트로 프록시도 연결해놓은 상태)
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
React는 껍데기일 뿐입니다. React로 만들었든 발로 만들었든 어떤 웹 앱을 LTE망에서 접속해 보고 싶으시다면 해당 애플리케이션을 공개 웹서버에 배포하셔야 해요.
실무적인 의미에서의 웹서버란 말하자면...
- 어떤 컴퓨터가 있고 24시간 켜져 있습니다.
- 이 컴퓨터는 특정 IP에 연결되어 있고 네트워크 설정상 80번 포트가 열려 있습니다.
- 그 컴퓨터에는 nginx나 apache라는 게 깔려 있고 24시간 실행되고 있는데, 이놈(들)이 하는 일은, 특정 폴더의 특정 파일들을 특정한 방식으로 가공해서 80번 포트를 통해 들어오는 특정 요청을 위해 갖다바치는(serve) 것입니다. 헉 그래서 server라고 하는군요.
- 그 컴퓨터의 nginx나 apache가 설정한 특정 폴더에는, 개발하신 멋진 코드들이 들어 있습니다. (그 폴더에 그 코드를 넣는 작업이 좁은 의미에서의 '배포'입니다.)
- 그 컴퓨터의 nginx나 apache가 설정한 특정 가공 방식은, 예를 들면 PHP나 node.js 같은것을 통해 그 멋진 코드들을 실행시키고 그 출력을 돌려주는 방식이 될 수 있습니다.
- 그러면 이제 누군가가 외부망에서 그 IP로 접속(하거나 도메인을 통해서 접속)하면, nginx나 apache가 막 일을 해서 접속한 사람의 요청에 알맞은 출력을 응답하게 됩니다.
이해가 안 되실 것 같은데 그냥 실전을 해보시는 게 좀더 빠를 겁니다. 대충 찾아보니 Heroku에 바로 올리는 방법이 가장 빠르고 편할 것 같네요. 이 방법은 heroku 전용 코드저장소에 코드를 모두 푸시한 다음 heroku의 가상컴퓨터 특정 폴더에 그 코드를 내려받고 MEAN 스택 웹서버를 실행해 주는 방식이라 생각됩니다. 한번 시도해 보세요.
PS. 꼭 빌드를 해야 하느냐? 아마도요.
-
댓글 입력