리눅스 CentOS NodeJS 설치해서 웹 서버 띄우는 방법(Oracle Virtual Box 환경)

 

환경: CentOS

 

로컬 컴퓨터에 Oracle Virtual Box CentOS 를 설치했습니다. 이제 CentOS NodeJS 서버를 띄운 후 외부에서 접근해 보겠습니다. 외부 네트워크 서버로 접속하는 것이 아니라 로컬 컴퓨터의 Virtual Box CentOS 로 접근해야 하기 때문에 포트 포워딩 설정을 해야 합니다. 돈을 주고 클라우드 서버를 임대할 필요없이 자신의 컴퓨터에서 CentOS NodeJS 웹 서버를 띄우는 방법에 대해 알아 보겠습니다.

 

먼저 CentOS NodeJS 가 설치되어 있는지 확인해 보겠습니다. 아래 명령어를 이용하면 확인이 가능합니다.

 

[root@localhost ~]# rpm -qa | grep nodejs

[root@localhost ~]# node -v

-bash: node: command not found

 

만약 NodeJS 가 없다면 yum 을 이용해서 NodeJS 를 설치합니다.

 

[root@zetawiki ~]# yum install nodejs

...

Install       5 Package(s)

Total download size: 3.7 M

Installed size: 12 M

Is this ok [y/N]: y

 

Complete!

 

nodejs 설치가 끝나면 처음에 실행했던 명령어로 확인해 봅니다. v6.12.3 이 설치가 되었네요.

 

[root@localhost ~]# rpm -qa | grep nodejs

nodejs-6.12.3-1.el7.x86_64

[root@localhost ~]# node -v

v6.12.3

 

다음은 NodeJS 모듈 설치 유틸인 npm 을 이용해서 request 모듈을 설치합니다. 아래와 같은 메시지가 뜨면서 설치가 진행됩니다.

 

[root@localhost ~]# npm install request

/root

└─┬ request@2.83.0

  ├── aws-sign2@0.7.0

  ├── aws4@1.6.0

  ├── caseless@0.12.0

  ├─┬ combined-stream@1.0.6

  │ └── delayed-stream@1.0.0

  ├── extend@3.0.1

  ├── forever-agent@0.6.1

  ├─┬ form-data@2.3.2

  │ └── asynckit@0.4.0

  ├─┬ har-validator@5.0.3

  │ ├─┬ ajv@5.5.2

  │ │ ├── co@4.6.0

  │ │ ├── fast-deep-equal@1.0.0

  │ │ ├── fast-json-stable-stringify@2.0.0

  │ │ └── json-schema-traverse@0.3.1

  │ └── har-schema@2.0.0

  ├─┬ hawk@6.0.2

  │ ├── boom@4.3.1

  │ ├─┬ cryptiles@3.1.2

  │ │ └── boom@5.2.0

  │ ├── hoek@4.2.1

  │ └── sntp@2.1.0

  ├─┬ http-signature@1.2.0

  │ ├── assert-plus@1.0.0

  │ ├─┬ jsprim@1.4.1

  │ │ ├── extsprintf@1.3.0

  │ │ ├── json-schema@0.2.3

  │ │ └─┬ verror@1.10.0

  │ │   └── core-util-is@1.0.2

  │ └─┬ sshpk@1.13.1

     ├── asn1@0.2.3

     ├── bcrypt-pbkdf@1.0.1

     ├── dashdash@1.14.1

     ├── ecc-jsbn@0.1.1

     ├── getpass@0.1.7

     ├── jsbn@0.1.1

     └── tweetnacl@0.14.5

  ├── is-typedarray@1.0.0

  ├── isstream@0.1.2

  ├── json-stringify-safe@5.0.1

  ├─┬ mime-types@2.1.18

  │ └── mime-db@1.33.0

  ├── oauth-sign@0.8.2

  ├── performance-now@2.1.0

  ├── qs@6.5.1

  ├── safe-buffer@5.1.1

  ├── stringstream@0.0.5

  ├─┬ tough-cookie@2.3.3

  │ └── punycode@1.4.1

  ├── tunnel-agent@0.6.0

  └── uuid@3.2.1

 

npm WARN enoent ENOENT: no such file or directory, open '/root/package.json'

npm WARN root No description

npm WARN root No repository field.

npm WARN root No README data

npm WARN root No license field.

 

설치한 모듈은 node_modules 폴더에 들어갑니다. SFTP 로 확인해 보세요. 이제 Node JS 로 웹 서버를 띄우기 위해 app.js 파일을 편집하겠습니다.

리눅스 CentOS 에 NodeJS 설치해서 웹 서버 띄우는 방법(Oracle Virtual Box 환경)


 

웹 사이트 외부에서 띄우는 방법

 

vi 편집기를 이용해서 app.js 에 다음 소스를 입력합니다. 중요한 것은 listen 에 들어가는 포트와 IP 입니다. IP CentOS IP 를 입력해야 합니다. app.js 에 편집한 내용을 저장하고 끝냅니다.

 

var http = require('http');

http.createServer(function (req, res) {

  res.writeHead(200, {'Content-Type': 'text/plain'});

  res.end('Hello World\n');

}).listen(1337, 10.0.2.15); // CentOS IP 입력

console.log('Server running at http://10.0.2.15:1337/');

리눅스 CentOS 에 NodeJS 설치해서 웹 서버 띄우는 방법(Oracle Virtual Box 환경)

 

이제 NodeJS 에서 웹 서버를 띄웁니다. 소스를 입력한 app.js 를 파라미터로 넘기면 Node JS 서버가 실행됩니다.

 

[root@localhost ~]# vi app.js

[root@localhost ~]# node app.js

Server running at http://10.0.2.15:1337/

 

마지막으로 자신의 컴퓨터에서 Virtual Box CentOS 서버로 접근할 수 있도록 설정을 변경해야 합니다. 그래야 NodeJS 웹 서버로 접근할 수 있습니다. 첫 번째는 CentOS 에 해당 포트를 추가해야 합니다. 명령어를 실행했을 때 port 항목에 번호가 있는지 확인합니다. 만약 없다면 추가해야겠죠.

 

[root@localhost ~]# firewall-cmd --permanent --list-all --zone=public

public

  target: default

  icmp-block-inversion: no

  interfaces:

  sources:

  services: ssh dhcpv6-client

  ports: 22/tcp 20/tcp 21/tcp 1337/tcp

  protocols:

  masquerade: no

  forward-ports:

  source-ports:

  icmp-blocks:

  rich rules:

 

포트 추가 명령어는 다음과 같습니다. 포트를 추가한 이후에는 반드시 --reload 를 해야 반영이 됩니다.

 

[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=1337/tcp

success

[root@localhost ~]# firewall-cmd --reload

success

 

두 번째는 Virtual Box 설정입니다. 로컬 PC 에서 Virtual Box 로 바로 접근할 수 없기 때문에 포트 포워딩을 해야 합니다. Oracle VM VirtualBox 를 실행하고 CentOS 설정화면으로 이동합니다

리눅스 CentOS 에 NodeJS 설치해서 웹 서버 띄우는 방법(Oracle Virtual Box 환경)

 

설정 화면 왼쪽 사이드의 메뉴 목록에서 [네트워크]를 선택합니다. 그리고 오른쪽 화면으로 이동해서 [포트 포워딩] 버튼을 클릭합니다

리눅스 CentOS 에 NodeJS 설치해서 웹 서버 띄우는 방법(Oracle Virtual Box 환경)

 

포트 포워딩 규칙에 웹 서버 접근을 위한 IP 와 포트를 입력합니다. 오른쪽 상단에 “+” 버튼을 클릭해서 항목을 추가하고 빈칸을 채웁니다. 호스트 IP/포트는 자신의 로컬 컴퓨터 정보이며, 게스트 IP/포트는 CentOS 정보입니다

리눅스 CentOS 에 NodeJS 설치해서 웹 서버 띄우는 방법(Oracle Virtual Box 환경)

 

작업을 끝내고 웹 브라우저에서 Oracle VM VirtualBox IP 와 포트 번호를 입력해 보세요. CentOS NodeJS 를 띄운 상태라면 그림과 같은 화면이 나타날 겁니다

리눅스 CentOS 에 NodeJS 설치해서 웹 서버 띄우는 방법(Oracle Virtual Box 환경)

Posted by 녹두장군