본문 바로가기

CentOS & node.js & Express 서버 외부 공개하기

by Recstasy 2019. 4. 24.

1 node.js 웹 서버 설치하기

대다수 상업용 서버는 아파치, nginX를 사용하지만 테스트용으로 활용한다면 node.js + express조합으로도 공개 서버를 제작할 수 있다. 먼저, 빈 폴더를 생성하고, 'npm init'명령어를 통해 버전을 지정해준다. 이후 express를 설치한다.

 

   1-1 express 설치

[webdoli@server testServer]$ npm install --save express

 

 

   1-2 웹서버 실행

// [index.js]
const express = require('express');
const app = express();

//메인 페이지 
app.get('/', (req,res)=>{
	res.send('hello world');
})

//https 서버연결
app.listen(3000);

 

 

express를 설치한 폴더에 index.js파일을 생성한다. 놀랍게도 코드 4~5줄이면, 웹서버가 생성된다. 터미널에서 웹서버를 실행해보자. 

 

[webdoli@server testServer]$ node index.js

 

웹 브라우저의 주소창에 'http://localhost:3000'을 입력하면 3000번 포트가 열린 것을 알 수 있다.

 


2 방화벽 설정

웹 서버가 정상적으로 작동했다면, LAN 내부의 다른 호스트에서 해당 80포트(웹서버 기본설정)의 서버에 접속할 수 있도록 방화벽을 설정해야 한다. Cent OS의 기본 방화벽 설정은 대부분 웹 서버 접속이 제한되어 있으므로 다음과 같이 방화벽 설정을 변경해준다. (각각 엔터키 입력)

 

[webdoli@server testServer]$ su
[webdoli@server testServer]$ firewall-cmd --permanent --add-service=http --zone=public
[webdoli@server testServer]$ firewall-cmd --permanent --add-service=https --zone=public
[webdoli@server testServer]$ firewall-cmd --reload

 

만일, 테스트용 3000포트를 공개하기를 원한다면 3000포트도 아래와 같이 열어준다.

 

[webdoli@server testServer]$ firewall-cmd --permanent --add-port=3000/tcp
[webdoli@server testServer]$ firewall-cmd --reload

 

방화벽이 개방된 포트를 모두 확인하려면 아래 명령어를 입력한다. 

 

[webdoli@server testServer]$ firewall-cmd --zone=public --list-all

  

 

 

 

 

 


3 공유기 설정

마지막으로 공유기의 '포트포워딩'을 설정해야 한다. iptime공유기를 사용한다면, "고급설정 -> NAT/라우터 관리 -> 포트포워드 설정"에서 다음과 같이 입력한다. (*빨간색 부분 참고)

 

만일, 3000번 포트를 사용한다면 외부포트, ⑥내부포트 값을 '3000'으로 설정해준다. 그리고 iptime공유기의 경우, ip가 수시로 변경되는 가정용 유동ip에 대응하기 위한 DDNS서비스를 이용할 수 있다. '특수기능 -> DDNS'설정에서 아래와 같이 외부에서 접속할 수 있는 iptime도메인을 설정해보자.

 

 

 

 

 


4 외부접속

구글에서 '아이피확인'을 검색하면 여러 ip확인 사이트를 볼 수 있다. 아무 곳에나 접속해서 ip를 알아낸다.

 

 

 

[webdoli@server testServer]$ node index.js

 

웹서버를 실행하고, 외부에서(ex.모바일 데이터로 접속) "웹서버 컴퓨터 ip:포트번호"를 주소창에 입력한다. 현재 테스트에서는 3005번 포트를 열어줬기 때문에 아래와 같이 'iptime ddns 주소 : 3005'주소를 통해 외부에서 웹서버로 접속할 수 있다.

 

 

댓글

최신글 전체

이미지
제목
글쓴이
등록일