Nginx를 사용하여 NodeJS 애플리케이션 배포



Nginx를 사용하여 NodeJS/ExpressJS 애플리케이션 호스팅



Node.js는 V8 엔진에서 실행되는 오픈 소스, 교차 플랫폼, 백엔드 JavaScript 런타임 환경입니다.

NodeJS 애플리케이션은 다양한 방법으로 호스팅할 수 있지만 가장 선호되는 방법은 Nginx 리버스 프록시 서버를 사용하는 것입니다. 이 기사에 따라 사용 가능한 무료 크레딧이 있는 경우 모든 클라우드 제공에서 무료로 자신의 NodeJS + Express 애플리케이션을 호스팅할 수 있습니다(대부분 계정을 처음 만드는 경우).

이 복제를 위해서는 모든 클라우드 공급자의 계정이 필요합니다. 나는 AWS를 사용할 것이다.

시작하자:

1단계: 클라우드 환경 설정 👽:



클라우드 콘솔로 이동하여 가상 머신을 생성합니다. 내가 공유한 아래 명령은 Amazon EC2에서 Ubuntu 18.x를 사용하고 있습니다. 그러나 아무 기계나 선택하고 그에 따라 아래에 언급된 패키지를 설치하십시오.

2단계: NodeJS 설치 및 설정:



위에서 언급했듯이 NodeJS는 오픈 소스입니다. 따라서 다른 기계에서 무료로 사용할 수 있습니다. Ubuntu에 NodeJS를 설치하려면 다음을 따르십시오.

최신 업데이트 확인:

sudo apt update


이제 Node.js를 설치합니다.

sudo apt install nodejs


Node.js가 성공적으로 설치되었고 버전이 다음과 같은지 확인하십시오.

node --version


이제 노드 패키지 관리자를 설치하십시오.

sudo apt install npm


3단계: 간단한 Node 및 Express 애플리케이션 만들기



아래에 언급된 코드는 누군가가 귀하의 웹페이지를 방문하는 경우 Hello World를 제공합니다.

Nodejs 애플리케이션을 초기화합니다.

cd ~
mkdir mynodeapp && cd mynodeapp
npm init -y


익스프레스 설치

npm i express


다음 코드를 app.js 파일에 복사합니다.

vim app.js



const express = require("express"); 
const app = express(); // Initializing Express App

// Sending Hello World when anyone browse your webpage

app.get("/*", (req, res)=>{
        res.send('Hello World'); 
});

app.listen(3000, ()=> console.log("App Listening on port 3000"));


위의 코드를 저장하고 :wq와 함께 esc 버튼을 눌러 종료합니다.

애플리케이션 테스트:

node app.js


예상 출력:

App Listening on port 3000



위의 응용 프로그램을 닫으려면 Ctrl-C를 누르십시오.


위의 애플리케이션을 실행하면 다른 모든 명령을 차단하고 다른 활동을 수행할 수 없음을 알 수 있습니다. 또한 터미널을 닫으면 앱도 닫힙니다. 이 문제를 해결하기 위해 우리는 pm2를 사용할 것입니다. 이것은 우리가 자원이나 우리를 차단하지 않고 한 번에 다른 포트에서 여러 NodeJS/ExpressJS 애플리케이션을 실행하는 데 도움이 될 것입니다.

PM2 설치

sudo npm install -g pm2


pm2를 사용하여 위의 애플리케이션을 시작합니다.

pm2 start app.js


응용 프로그램이 실행 중인지 확인하십시오.

pm2 status


애플리케이션을 중지하려면 다음을 수행할 수 있습니다.

pm2 stop <application_name/ID>


애플리케이션 이름은 app.js이거나 위의 pm2 상태 출력에 표시된 것처럼 ID는 0입니다.

애플리케이션을 다시 시작하려면:

pm2 restart <application_name/ID>


--

pm2를 사용하여 애플리케이션을 시작한 후; 로컬에서 성공적으로 실행되고 있는지 여부를 CURL을 사용하여 테스트하십시오.

curl localhost:3000


3단계: Nginx 프록시 설정



우리는 애플리케이션이 현재 포트 3000에서 실행되고 있음을 볼 수 있습니다. 그러나 우리는 누구든지 우리 애플리케이션에 올 때마다 우리 웹 사이트를 직접 열고 예를 들어 example.com을 열고 우리 애플리케이션으로 리디렉션되기를 원합니다. 그렇게 하기 위해 우리는 우리 웹사이트에 오는 사용자를 포트 3000에서 실행되는 애플리케이션으로 리디렉션하는 Nginx를 사용할 것입니다. nginx를 사용하면 여러 다른 웹사이트를 빠르게 설정하고 로그를 쉽게 저장/관리할 수 있습니다.

Ubuntu의 경우 기본 리포지토리에서 Nginx를 사용할 수 있으므로 nginx를 직접 설치하기만 하면 됩니다.

sudo apt install nginx


Nginx를 설정하려면 기본 nginx 파일을 열고 역방향 프록시를 localhost:3000으로 설정합니다.

sudo vim  /etc/nginx/sites-available/default


기본 파일의 서버 블록 아래에서 기존 위치 블록을 볼 수 있습니다. 아래 언급된 코드를 사용하여 location/의 내용을 제거합니다.

 location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }


nginx 서버 시작

sudo systemctl restart nginx


우후!! 🎉 현재 다음에서 실행 중인 애플리케이션을 성공적으로 호스팅했습니다.

http://your_virtual_machine_IP


도메인 이름 공급자에 your_virtual_machine_IP를 **A name**으로 추가하면 웹사이트를 방문하는 모든 사람이 NodeJS 애플리케이션을 볼 수 있습니다.

for, 일상 콘텐츠 인스타그램 팔로우


단계별 비디오 자습서는 아래 링크를 참조하십시오.

Youtube video by JSStackAcademy

좋은 웹페이지 즐겨찾기