Ubuntu Sunucuda Next.js Projesi Nasıl Deploy Edilir?

image

22 Jul 2024

Bu rehberde, Ubuntu sunucunuzda Next.js projenizi PM2 ve Nginx kullanarak nasıl deploy edeceğinizi detaylıca anlatacağız. Bu adımları izleyerek, uygulamanızı ölçeklenebilir ve güvenli bir şekilde sunabilirsiniz.

Gereksinimler

  • Ubuntu sunucu (20.04 veya üzeri)
  • Node.js ve npm yüklü
  • Temel Linux komut bilgisi

1. Sunucunuzu Hazırlayın

İlk olarak, sunucunuzun güncel olduğundan emin olun ve gerekli yazılımları yükleyin.

sudo apt update
sudo apt upgrade -y
sudo apt install build-essential

2. Node.js ve npm Kurulumu

Node.js ve npm'i yükleyin. Bu rehberde NodeSource kullanarak Node.js'in LTS sürümünü kuracağız.

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs

3. Next.js Projenizi Yükleyin

Next.js projenizi sunucuya kopyalayın. Bunun için SCP, rsync veya git gibi araçları kullanabilirsiniz. Örneğin, git kullanarak:

git clone https://github.com/kullanici/nextjs-proje.git
cd nextjs-proje
npm install

4. PM2 ile Next.js Uygulamanızı Yönetmek

PM2'yi küresel olarak yükleyin ve Next.js uygulamanızı çalıştırmak için kullanın.

sudo npm install -g pm2
pm2 start npm --name "nextjs-app" -- start
pm2 save
pm2 startup

5. Nginx Kurulumu

Nginx'i yükleyin ve yapılandırın.

sudo apt install nginx
sudo systemctl start nginx
sudo systemctl enable nginx

6. Nginx Yapılandırması

Nginx konfigürasyon dosyasını düzenleyerek, trafiği Next.js uygulamanıza yönlendirin. Yeni bir site konfigürasyon dosyası oluşturun:

sudo nano /etc/nginx/sites-available/nextjs

Aşağıdaki içeriği ekleyin ve server_name kısmını kendi domain veya IP adresinizle değiştirin:

server {
    listen 80;
    server_name example.com;

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

Yapılandırma dosyasını etkinleştirin ve Nginx'i yeniden başlatın:

sudo ln -s /etc/nginx/sites-available/nextjs /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

7. Güvenlik ve SSL

Let's Encrypt kullanarak SSL sertifikası yükleyin ve HTTPS'i etkinleştirin.

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com

Sonuç

Bu rehberde, Ubuntu sunucunuzda Next.js projenizi PM2 ve Nginx ile nasıl deploy edeceğinizi öğrendiniz. Bu adımlar sayesinde, uygulamanızın ölçeklenebilirliğini ve güvenliğini artırabilirsiniz.