리눅스 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 파일을 편집하겠습니다.
◎ 웹 사이트 외부에서 띄우는 방법 |
▼ 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/'); |
▼ 이제 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 설정화면으로 이동합니다.
▼ 설정 화면 왼쪽 사이드의 메뉴 목록에서 [네트워크]를 선택합니다. 그리고 오른쪽 화면으로 이동해서 [포트 포워딩] 버튼을 클릭합니다.
▼ 포트 포워딩 규칙에 웹 서버 접근을 위한 IP 와 포트를 입력합니다. 오른쪽 상단에 “+” 버튼을 클릭해서 항목을 추가하고 빈칸을 채웁니다. 호스트 IP/포트는 자신의 로컬 컴퓨터 정보이며, 게스트 IP/포트는 CentOS 정보입니다.
▼ 작업을 끝내고 웹 브라우저에서 Oracle VM VirtualBox 로 IP 와 포트 번호를 입력해 보세요. CentOS 에 NodeJS 를 띄운 상태라면 그림과 같은 화면이 나타날 겁니다.
'NodeJS' 카테고리의 다른 글
자바스크립트 구동 서버 Node.js 로 웹 서버 구현하는 방법 (3) | 2024.11.16 |
---|---|
NodeJS 정적파일 읽는 방법, 웹페이지, 이미지, CSS 파일 읽는 방법 (1) | 2022.12.02 |
NodeJS 비주얼스튜디오코드 Cannot connect to runtime process 오류 해결하기 (0) | 2020.07.29 |
NodeJS Mongo DB (몽고 DB) 설치해서 사용하는 방법 (0) | 2020.07.05 |
NodeJS IDEL 통합환경 개발툴 Microsoft Visual Studio Code 무료 사용 (0) | 2018.10.22 |
NodeJS 패키지 관리 package.json 만드는 방법 (0) | 2018.10.21 |
이클립스에 NodeJS 개발환경 꾸미는 방법과 웹 서버 구성하기 2 (0) | 2018.10.05 |
NodeJS 웹 서버 실행해서 웹 페이지 표현하는 방법, Express 설치 (0) | 2018.09.28 |