Next.js 소스코드 배포 방법

Yun Subin·2024년 10월 10일
0

Ubuntu 22.04 기반 리눅스 서버에 Next.js 애플리케이션을 배포하는 방법을 단계별로 설명하겠습니다. 이 과정에서는 PM2와 Nginx를 사용하여 Next.js 애플리케이션을 프로덕션 환경에서 실행하는 방법을 다룹니다.

1. Next.js 애플리케이션 설정

1.1 프로젝트 클론

GitHub 또는 다른 리포지토리에서 프로젝트를 클론합니다.

git clone https://github.com/username/repository.git
cd repository

1.2 종속성 설치

프로젝트 디렉토리로 이동하여 종속성을 설치합니다.

npm install

1.3 Next.js 애플리케이션 빌드

프로덕션 빌드를 생성합니다.

npm run build

1.4 애플리케이션 시작

PM2를 사용하여 애플리케이션을 백그라운드에서 실행합니다.

pm2 start npm --name "nextjs-app" -- start
pm2 save
pm2 startup

2. Nginx 설정

2.1 Nginx 설치

Nginx를 설치합니다.

sudo apt install nginx -y

2.2 Nginx 구성 파일 설정

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;
    }
}

2.3 Nginx 설정 테스트 및 재시작

Nginx 설정이 올바른지 테스트하고 Nginx를 재시작합니다.

sudo nginx -t
sudo systemctl restart nginx

3. 방화벽 설정

3.1 방화벽 설정

UFW를 사용하여 필요한 포트를 엽니다.

sudo ufw allow 'Nginx Full'
sudo ufw enable

4. 도메인 설정 (선택 사항)

4.1 도메인 연결

도메인을 사용하는 경우, DNS 설정에서 도메인을 서버의 IP 주소에 매핑합니다.

4.2 SSL 인증서 설정 (Let’s Encrypt)

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 buildpm2 restart nextjs-app을 실행하여 새로운 빌드를 반영할 수 있습니다.

이 글이 Next.js 애플리케이션을 배포하는 데 도움이 되기를 바랍니다.

profile
Blockchain Web Developer

0개의 댓글