Ubuntu 22.04 기반 리눅스 서버에 Next.js 애플리케이션을 배포하는 방법을 단계별로 설명하겠습니다. 이 과정에서는 PM2와 Nginx를 사용하여 Next.js 애플리케이션을 프로덕션 환경에서 실행하는 방법을 다룹니다.
GitHub 또는 다른 리포지토리에서 프로젝트를 클론합니다.
git clone https://github.com/username/repository.git
cd repository
프로젝트 디렉토리로 이동하여 종속성을 설치합니다.
npm install
프로덕션 빌드를 생성합니다.
npm run build
PM2를 사용하여 애플리케이션을 백그라운드에서 실행합니다.
pm2 start npm --name "nextjs-app" -- start
pm2 save
pm2 startup
Nginx를 설치합니다.
sudo apt install nginx -y
Nginx 구성 파일을 편집하여 Next.js 애플리케이션을 역방향 프록시로 설정합니다.
sudo nano /etc/nginx/sites-available/default
파일 내용을 다음과 같이 수정합니다:
server {
listen 80;
server_name your_domain_or_ip;
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 설정이 올바른지 테스트하고 Nginx를 재시작합니다.
sudo nginx -t
sudo systemctl restart nginx
UFW를 사용하여 필요한 포트를 엽니다.
sudo ufw allow 'Nginx Full'
sudo ufw enable
도메인을 사용하는 경우, DNS 설정에서 도메인을 서버의 IP 주소에 매핑합니다.
HTTPS를 설정하기 위해 Let’s Encrypt를 사용하여 SSL 인증서를 설치합니다.
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain
인증서 갱신을 자동화합니다.
sudo certbot renew --dry-run
이제 Next.js 애플리케이션이 Ubuntu 22.04 서버에서 Nginx와 PM2를 사용하여 프로덕션 환경에서 실행되고 있습니다. 애플리케이션을 배포할 때마다 코드를 푸시하고, 서버에서 Git을 사용하여 코드를 업데이트한 후 npm run build
와 pm2 restart nextjs-app
을 실행하여 새로운 빌드를 반영할 수 있습니다.
이 글이 Next.js 애플리케이션을 배포하는 데 도움이 되기를 바랍니다.