Letsencrypt를 통해 SSL을 사용하여 Ubuntu 22에서 NodeJS 애플리케이션을 실행하는 것은 애플리케이션이 안전하고 모든 사용자가 액세스할 수 있도록 하는 좋은 방법입니다. SSL(Secure Sockets Layer)은 네트워크로 연결된 컴퓨터 간에 보안 연결을 설정하기 위한 프로토콜입니다. Letsencrypt는 애플리케이션에 대한 SSL 인증서를 쉽게 얻고 설치할 수 있게 해주는 무료 오픈 소스 인증 기관입니다.
다음은 Letsencrypt를 통해 SSL을 사용하여 Ubuntu 22에서 NodeJS 애플리케이션을 실행하는 방법에 대한 단계별 가이드입니다.
목차
1 Ubuntu 22에 Nginx 설치
Ubuntu에 Nginx를 설치하려면 쉘을 통해 터미널에 로그인하고 아래 명령을 실행하십시오.
sudo apt update -y
sudo apt install nginx -y
이 명령은 Nignx를 Ubuntu 시스템에 연결합니다.
2. NodeJS 및 npm(노드 패키지 관리자) 설치
NodeJS 및 npm(노드 패키지 관리자)을 설치하려면 아래 명령을 실행하세요.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
nvm이 설치되었는지 확인하려면 다음 명령을 실행하십시오.
command -v nvm
그런 다음 이 명령을 실행하여 NVM을 사용하여 Node 16을 설치합니다.
nvm install 16
3. 도메인/하위 도메인에 대한 Nginx 서버 블록 생성
다음은 Nodejs 애플리케이션을 위한 샘플 Nginx 서버 블록 중 하나입니다. 이 위치에 구성 파일을 만듭니다.
sudo vi /etc/nginx/conf.d/nodejs.conf
server {
listen 80;
server_name atiqur.xyz;
location / {
proxy_pass http://127.0.0.1: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
4. Express를 사용하여 간단한 Nodejs 애플리케이션 만들기
아래 코드를 사용하여 Express를 사용하여 간단한 Nodejs 애플리케이션을 만듭니다.
sudo vi index.js
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
이 코드 예제는 포트 3000에서 Nodejs 애플리케이션을 실행한 다음 hello world 메시지를 표시합니다.
동일한 디렉터리에 package.json 파일을 만듭니다.
sudo vi package.json
{
"name": "atiq-app",
"version": "1.0.0",
"description": "A simple Node.js Express application",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"dependencies": {
"express": "^4.17.1"
},
"author": "Your Name",
"license": "MIT"
}
그런 다음 실행하여 npm install
필요한 노드 모듈을 설치합니다.
5. PM2를 설치하여 이를 백그라운드 작업으로 실행합니다.
PM2는 백그라운드에서 애플리케이션을 데몬으로 실행할 수 있게 해주는 Node.js 애플리케이션용 프로세스 관리자입니다. PM2로 Express 애플리케이션을 실행하려면 먼저 다음 명령을 사용하여 PM2를 설치해야 합니다.
npm install pm2 -g
그러면 PM2가 시스템 전체에 설치됩니다.
PM2가 설치되면 다음 명령을 사용하여 애플리케이션을 시작할 수 있습니다.
pm2 start index.js --name "atiq-app"
6. Letsencrypt로 SSL 설치
SSL의 경우 아래 명령을 실행하여 Certbot을 설치해야 합니다.
sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo certbot --nginx
SSL 인증서를 항상 최신 상태로 유지하려면 크론 작업을 설정하여 자동으로 갱신할 수 있습니다. 이렇게 하려면 다음 명령을 실행하여 crontab 파일을 엽니다.
sudo crontab -e
그런 다음 SSL 갱신을 위해 정기적으로 실행하는 코드를 추가하십시오.
0 3 * * * sudo certbot renew >/dev/null 2>&1
결론
결론적으로 이 문서에서는 Letsencrypt를 통해 SSL을 사용하여 Ubuntu 22에서 NodeJS 애플리케이션을 실행하는 방법에 대한 포괄적인 가이드를 제공합니다. NodeJS 설치, 도메인 및 SSL 인증서 설정, HTTPS를 통해 실행되도록 애플리케이션 구성 등 필요한 모든 단계를 다룹니다. 기사에 설명된 지침을 따르면 개발자는 NodeJS 애플리케이션을 쉽게 보호하고 보안 연결을 통해 액세스할 수 있는지 확인할 수 있습니다. 또한 Letsencrypt를 사용하면 SSL 인증서를 쉽게 얻고 갱신할 수 있으므로 추가 비용 없이 애플리케이션을 보호하려는 개발자에게 탁월한 선택이 됩니다.