next js projesi yayınlama: 2026 İçin VDS Üzerinde 7 Kritik Adım

Geçen hafta bir müşterimizin next js projesi yayınlama sürecinde yaşadığı bir sorunu çözdük. React tabanlı yönetim panelini paylaşımlı hostinge yüklemeye çalışıyordu ancak Node.js desteği olmadığı için sürekli 500 hatası alıyordu. Oysa proje VDS üzerinde doğru yapılandırıldığında 2 saat içinde yayına alınabiliyordu. Bu rehberde, 2026 yılında bir Next.js uygulamasını sıfırdan canlı sunucuya nasıl taşıyacağınızı adım adım anlatıyorum.

Next.js, React ekosisteminin en güçlü frameworklerinden biri. Ancak üretim ortamına (production) almak, basit bir FTP yüklemesinden çok daha fazlasını gerektiriyor. Yanlış yapılandırılmış bir sunucu, uygulamanızın çökmesine veya güvenlik açıklarına neden olabilir. Neyse ki doğru adımları izlerseniz süreç tahmin ettiğinizden daha yönetilebilir. Biz de Saviorhost olarak yıllardır Node.js tabanlı projeleri VDS altyapımızda barındırıyoruz. Bu deneyimi sizinle paylaşacağım.

📋 Önemli Noktalar

  • Next.js projeleri Node.js çalışma ortamı gerektirir; paylaşımlı hosting çoğu zaman yetersiz kalır.
  • VDS üzerinde PM2 + Nginx + SSL üçlüsü en stabil üretim mimarisini oluşturur.
  • next build komutu ile aldığınız çıktı, sunucu kaynak kullanımını doğrudan etkiler.
  • Standalone mod kullanmak, gereksiz Node.js bağımlılıklarını azaltarak performansı artırır.
  • Bu rehberdeki tüm komutlar Ubuntu 22.04/24.04 üzerinde test edilmiştir.

Next.js Projesi Yayınlamadan Önce Bilmeniz Gerekenler

Next.js Projesi Yayınlamadan Önce Bilmeniz Gerekenler

Next.js uygulamasını canlıya almadan önce sunucunun teknik gereksinimlerini netleştirmek, ileride yaşanacak sorunların %70’ini ortadan kaldırır. 2026 yılı itibarıyla çoğu VDS sağlayıcısı varsayılan olarak Node.js desteği sunar ancak sürüm uyumluluğu ve kaynak yönetimi kritik öneme sahiptir.

Node.js Sürümü ve Sistem Gereksinimleri

Next.js 15 ve sonrası, Node.js 18.18 veya üzeri sürümleri zorunlu kılar. Ancak üretim ortamında Node.js 20 LTS veya 22 LTS kullanmanızı öneriyoruz. Çünkü LTS sürümleri uzun süreli güvenlik yamaları alır ve paket uyumluluk sorunları minimuma iner. VDS kaynakları açısından ise en az 2 GB RAM ve 2 vCPU ideal başlangıç noktasıdır. Eğer SSR (Server-Side Rendering) yoğun bir uygulamanız varsa 4 GB RAM öneriyoruz.

Önemli Not: Paylaşımlı hosting paketleri genellikle Node.js çalıştırmaz. Bu yüzden blank” rel=”noopener”>n8n & Node.js Hosting veya doğrudan bir VDS hizmeti gerekir. Eğer projeniz küçük ve statik ağırlıklıysa, blank” rel=”noopener”>linux hosting paketleri de statik export için kullanılabilir.

Üretim Modu ile Geliştirme Modu Arasındaki Fark

Geliştirme sırasında next dev komutu hızlı yeniden derleme için tasarlanmıştır. Ancak bu mod, sunucu kaynaklarını aşırı tüketir. Üretimde mutlaka next build ve next start komutlarını kullanmalısınız. Build sonrası oluşan .next klasörü optimize edilmiş dosyaları içerir. Bu sayede sayfa yükleme süreleri belirgin şekilde düşer.

İşin sırrı şurada: Build işlemini geliştirme makinenizde değil, her zaman sunucu üzerinde gerçekleştirin. Çünkü farklı işletim sistemlerinde derlenen native modüller uyumsuzluk yaratabilir.

Statik Export mu, SSR mı?

Next.js iki farklı yayınlama modu sunar. output: 'export' ile statik HTML dosyaları üretirsiniz. Bu dosyalar herhangi bir web sunucusunda (Nginx, Apache) çalışır. Ancak dinamik route’lar, API route’lar ve middleware gibi özellikler çalışmaz. SSR modunda ise bir Node.js sunucusu sürekli çalışır ve istekleri dinamik olarak işler.

Özellik Statik Export SSR (Node.js Sunucu)
Barındırma Herhangi bir web sunucusu VDS / Node.js destekli hosting
API Routes ❌ Desteklenmez ✅ Tam destek
Dinamik Route ❌ Sınırlı ✅ Tam destek
Sunucu Kaynak Kullanımı Düşük Orta-Yüksek
Güncelleme Kolaylığı Yeniden build + upload PM2 reload

Hangi modu seçeceğiniz projenizin ihtiyacına bağlı. Eğer sadece blog veya tanıtım sitesi yayınlayacaksanız statik export yeterli. Ancak kullanıcı girişi, canlı veri veya API entegrasyonu varsa SSR şart.

Önemli Not: Bu rehberin devamında SSR odaklı bir kurulum anlatacağız. Çünkü gerçek dünyada next js projesi yayınlama ihtiyacı duyanların büyük bölümü dinamik uygulamalar geliştiriyor.

Peki sunucu tarafına geçmeden önce nelere dikkat etmeliyiz? Bir sonraki bölümde VDS kurulumunu sıfırdan yapacağız.

VDS Sunucu Hazırlığı: Node.js ve PM2 Kurulumu

VDS Sunucu Hazırlığı: Node.js ve PM2 Kurulumu

VDS sunucunuza SSH ile bağlandıktan sonra ilk iş Node.js ortamını kurmaktır. Ubuntu 22.04 veya 24.04 kullandığınızı varsayıyorum. Bu adımları birebir uygulayarak temiz bir kurulum yapabilirsiniz.

Adım 1: Node.js Kurulumu

NodeSource deposunu ekleyerek güncel LTS sürümünü yükleyelim. Aşağıdaki komutlar Node.js 20.x sürümünü kurar:

# NodeSource deposunu ekle

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -

Node.js ve npm'i yükle

sudo apt install -y nodejs

Kurulumu doğrula

node -v

npm -v

Dikkat et: curl komutu çalışmazsa önce sudo apt install curl -y ile curl’ı yükleyin.

Adım 2: PM2 Kurulumu

PM2, Node.js uygulamalarını arka planda çalıştıran, otomatik yeniden başlatan ve log yönetimi sağlayan bir süreç yöneticisidir. Sunucu yeniden başladığında uygulamanızın otomatik ayağa kalkmasını istiyorsanız PM2 vazgeçilmezdir.

# PM2'yi global olarak yükle

sudo npm install -g pm2

PM2'nin sistem başlangıcında otomatik çalışmasını sağla

pm2 startup systemd

Çıkan komutu kopyalayıp çalıştır (sudo env PATH=... şeklinde olacak)

sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu

PM2'yi kaydet

pm2 save

Bu adım tamamlandığında sunucunuz yeniden başlasa bile PM2 otomatik olarak devreye girecek ve kayıtlı uygulamalarınızı başlatacaktır. Sunucu uptime değerleri açısından bu kritik bir avantajdır.

Adım 3: Git ve Temel Araçlar

Projenizi sunucuya aktarmak için Git kullanabilirsiniz. Ayrıca build sürecinde bazı sistem kütüphaneleri gerekebilir. Aşağıdaki paketleri kurun:

sudo apt install -y git build-essential

Node.js native modüller için Python ve make gerekebilir

sudo apt install -y python3 make g++

Alternatif olarak dosyaları FTP ile sunucuya yükleyebilirsiniz. Ancak Git kullanmak hem hızlı hem de sürüm kontrolü sağlar.

Özetle: Node.js 20 LTS, PM2 ve Git kurulumu tamamlandı. Artık projenizi sunucuya taşıyabilir ve build edebilirsiniz. Sıradaki adım, Next.js projesini üretim için hazırlamak.

Ancak asıl kritik nokta bir sonraki adımda: Build optimizasyonu olmadan sunucu kaynakları boşa harcanır.

Next.js Projesini Build Etme ve Optimize Etme

Next.js Projesini Build Etme ve Optimize Etme

Build işlemi, Next.js projesinin üretim ortamına hazır hale getirilmesidir. Bu aşamada yapılan hatalar, sunucuda bellek şişmesi ve yavaş yanıt süreleri olarak geri döner. Doğru yapılandırma ile bu sorunları kökten çözebilirsiniz.

Standalone Mod ile Build Almak

Next.js 13.4 ve sonrasında gelen output: 'standalone' özelliği, üretim dağıtımını inanılmaz kolaylaştırdı. Bu mod, uygulamanızı çalıştırmak için gereken minimum dosyaları ayrı bir klasöre kopyalar. Böylece sunucuya gereksiz node_modules dosyaları taşınmaz.

next.config.js dosyanızı şu şekilde güncelleyin:

/** @type {import('next').NextConfig} */

const nextConfig = {

output: 'standalone',

experimental: {

// Gerekirse buraya ek ayarlar

},

env: {

APIURL: process.env.APIURL,

},

};

module.exports = nextConfig;

Bu yapılandırma sonrası npm run build komutu, .next/standalone klasörünü oluşturur. Bu klasör, server.js dosyası ile birlikte bağımsız çalışabilir.

Build Komutunu Çalıştırma

Proje dizininize gidin ve aşağıdaki komutları sırasıyla çalıştırın:

# Proje dizinine git

cd /var/www/nextjs-uygulamaniz

Bağımlılıkları yükle (eğer ilk kez kuruluyorsa)

npm install

Build al

npm run build

Build tamamlandığında ekranda her route için boyut bilgilerini görürsünüz. Bu bilgiler, hangi sayfaların optimize edilmesi gerektiğini anlamanıza yardımcı olur. Örneğin, bir sayfanın First Load JS değeri 200 kB üzerindeyse, o sayfada code splitting yapmanız gerekebilir.

Çevre Değişkenleri (Environment Variables)

API anahtarları ve veritabanı bağlantı bilgileri asla kod içine gömülmemelidir. Bunun yerine .env.production dosyası kullanın. Bu dosyayı sunucuda oluşturun ve değerleri ekleyin:

# .env.production dosyası oluştur

nano .env.production

# Dosya içeriği örneği

API_URL=https://api.siteniz.com

DATABASE_URL=postgresql://user:password@localhost:5432/veritabani

NEXTPUBLICANALYTICS_ID=UA-12345678

Dikkat et: NEXTPUBLIC öneki taşıyan değişkenler tarayıcıya açılır. Hassas bilgileri bu önekle tanımlamayın.

Önemli Not: Standalone mod kullanmıyorsanız, sunucuya node_modules klasörünün tamamını kopyalamanız gerekir. Bu hem disk alanı israfına hem de güvenlik risklerine yol açar. Standalone modu mutlaka tercih edin.

Build hazır. Peki bu uygulamayı dış dünyaya nasıl açacağız? İşte tam burada Nginx devreye giriyor.

Nginx Ters Proxy Yapılandırması

Next.js uygulamanız belirli bir port üzerinde (örneğin 3000) çalışır. Ancak kullanıcıların bu porta doğrudan erişmesini istemeyiz. Nginx, gelen HTTP/HTTPS isteklerini 80 veya 443 portundan alıp 3000 portuna yönlendirir. Buna ters proxy (reverse proxy) denir.

Nginx Kurulumu

Ubuntu üzerinde Nginx kurmak oldukça basittir:

sudo apt update

sudo apt install -y nginx

Nginx durumunu kontrol et

sudo systemctl status nginx

Next.js İçin Nginx Yapılandırması

Yeni bir yapılandırma dosyası oluşturun:

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

Aşağıdaki yapılandırmayı yapıştırın ve domain adınızı kendinize göre değiştirin:

server {

listen 80;

server_name sizin-domain.com www.sizin-domain.com;

# Gelen istekleri Next.js uygulamasına yönlendir

location / {

proxy_pass http://127.0.0.1:3000;

proxyhttpversion 1.1;

proxysetheader Upgrade $http_upgrade;

proxysetheader Connection 'upgrade';

proxysetheader Host $host;

proxycachebypass $http_upgrade;

proxysetheader X-Real-IP $remote_addr;

proxysetheader X-Forwarded-For $proxyaddxforwardedfor;

proxysetheader X-Forwarded-Proto $scheme;

# Zaman aşımı süreleri (uzun süren istekler için)

proxyconnecttimeout 60s;

proxysendtimeout 60s;

proxyreadtimeout 60s;

}

# Statik dosyalar için özel yapılandırma

location /_next/static/ {

proxy_pass http://127.0.0.1:3000;

proxysetheader Host $host;

expires 365d;

add_header Cache-Control "public, immutable";

}

# Büyük dosya yüklemeleri için limit

clientmaxbody_size 10M;

# Loglar

access_log /var/log/nginx/nextjs-access.log;

error_log /var/log/nginx/nextjs-error.log;

}

Bu yapılandırmayı kaydettikten sonra siteyi etkinleştirin:

# Siteyi etkinleştir

sudo ln -s /etc/nginx/sites-available/nextjs-uygulamaniz /etc/nginx/sites-enabled/

Yapılandırmayı test et

sudo nginx -t

Nginx'i yeniden yükle

sudo systemctl reload nginx

nginx -t komutu “syntax is ok” mesajı verirse yapılandırma hatasız demektir. Eğer hata alırsanız, hata mesajını dikkatlice okuyun. Çoğu zaman eksik noktalı virgül veya dosya yolu hatasıdır.

Neden Nginx Kullanmalıyız?

Bazı geliştiriciler doğrudan 80 portuna Node.js uygulamasını bağlamayı deniyor. Bu yaklaşım hem çalışır hem de yanlıştır. Nginx, SSL terminasyonu, statik dosya önbellekleme, istek sınırlama ve DDoS koruması gibi kritik görevleri üstlenir. Ayrıca NVMe SSD disk performansı ile birleştiğinde, statik dosyaların sunucudan inanılmaz hızlı gönderilmesini sağlar.

Özetle: Nginx, 80 portundan gelen istekleri Next.js uygulamanıza yönlendirir. Ayrıca statik dosyaları önbellekleyerek sunucu yükünü azaltır. Artık uygulamanız Nginx üzerinden erişilebilir durumda.

Ancak uygulamanın sürekli çalışmasını sağlamak için PM2 yapılandırmasına ihtiyacımız var. Bir sonraki bölümde bunu ele alacağız.

PM2 ile Next.js Uygulamasını Yönetme

Next.js uygulamanızı manuel olarak node server.js komutuyla başlatabilirsiniz. Ancak SSH oturumunu kapattığınızda uygulama kapanır. Ayrıca sunucu yeniden başlarsa uygulamanız otomatik ayağa kalkmaz. PM2 bu sorunların tamamını çözer.

PM2 ile Uygulamayı Başlatma

Standalone build sonrası oluşan .next/standalone klasörü içindeki server.js dosyasını PM2 ile başlatın:

# Proje dizinine git

cd /var/www/nextjs-uygulamaniz

PM2 ile başlat

pm2 start .next/standalone/server.js --name "nextjs-uygulamaniz" --node-args="--max-old-space-size=1024"

Durumu kontrol et

pm2 status

Logları görüntüle

pm2 logs nextjs-uygulamaniz

Not: --max-old-space-size=1024 değeri, Node.js’in kullanabileceği maksimum heap belleğini 1 GB ile sınırlar. Sunucunuzun RAM miktarına göre bu değeri ayarlayın. Örneğin 4 GB RAM için 2048 veya 3072 kullanabilirsiniz.

PM2 Ekosistem Dosyası Oluşturma

Daha yönetilebilir bir yapı için ecosystem.config.js dosyası oluşturmanızı öneriyorum. Bu dosya, tüm PM2 ayarlarını tek bir yerde toplar:

module.exports = {

apps: [

{

name: 'nextjs-uygulamaniz',

script: '.next/standalone/server.js',

instances: 1,

exec_mode: 'fork',

autorestart: true,

watch: false,

maxmemoryrestart: '1G',

env: {

NODE_ENV: 'production',

PORT: 3000,

HOSTNAME: '0.0.0.0',

},

error_file: '/var/log/pm2/nextjs-error.log',

out_file: '/var/log/pm2/nextjs-out.log',

merge_logs: true,

time: true,

},

],

};

Bu dosyayı proje dizinine kaydedin ve uygulamayı şu komutla başlatın:

pm2 start ecosystem.config.js

pm2 save

PM2 Alternatifleri: systemd vs nohup

PM2 en popüler seçenek olsa da, bazı ekipler systemd servislerini tercih eder. Hangi yöntemin size uygun olduğunu anlamak için aşağıdaki tabloyu inceleyin:

Özellik PM2 systemd nohup
Otomatik yeniden başlatma ✅ Var ✅ Var ❌ Yok
Log yönetimi ✅ Güçlü ✅ journald ❌ Manuel
Kolay kurulum ✅ Çok kolay ⚠️ Orta ✅ Basit
Çoklu uygulama yönetimi ✅ Mükemmel ❌ Zayıf ❌ Yok
Kaynak tüketimi Düşük Düşük En düşük

PM2, özellikle birden fazla Node.js uygulaması yönetenler için en pratik çözümdür. Saviorhost olarak biz de tüm Node.js projelerimizde PM2 kullanıyoruz. Eğer n8n & Node.js Hosting hizmetimizde olduğu gibi birden fazla otomasyon çalıştırıyorsanız, PM2’nin çoklu uygulama desteği hayat kurtarıcıdır.

Önemli Not: PM2’yi asla root kullanıcısıyla çalıştırmayın. Ayrı bir sistem kullanıcısı oluşturun ve uygulamanızı o kullanıcıyla çalıştırın. Bu, olası bir güvenlik ihlalinde sunucunun tamamının ele geçirilmesini önler.

Uygulamanız artık sağlam bir şekilde çalışıyor. Peki kullanıcıların güvenli bağlantı kurmasını nasıl sağlayacağız? İşte sıradaki adım SSL.

SSL Sertifikası ve Domain Bağlama

2026 yılında SSL sertifikası olmayan bir site, hem Google sıralamasında düşer hem de ziyaretçiler tarafından güvenilmez bulunur. Neyse ki Let’s Encrypt ile ücretsiz SSL sertifikası almak artık dakikalar sürüyor.

Certbot ile SSL Kurulumu

Certbot, Let’s Encrypt sertifikalarını otomatik olarak alıp yenileyen bir araçtır. Kurulumu için:

# Certbot ve Nginx eklentisini yükle

sudo apt install -y certbot python3-certbot-nginx

SSL sertifikası al ve Nginx yapılandırmasını otomatik güncelle

sudo certbot --nginx -d sizin-domain.com -d www.sizin-domain.com

Yenileme testini çalıştır

sudo certbot renew --dry-run

Certbot kurulum sırasında size e-posta adresi sorar ve yönlendirme tercihini sunar. HTTP’den HTTPS’e otomatik yönlendirme yapmasını seçin. Bu, SEO açısından da doğru bir tercihtir.

SSL Yapılandırması Sonrası Nginx Kontrolü

Certbot, Nginx yapılandırma dosyanıza otomatik olarak SSL satırları ekler. Dosyanın son hali şuna benzer:

server {

listen 443 ssl http2;

server_name sizin-domain.com www.sizin-domain.com;

ssl_certificate /etc/letsencrypt/live/sizin-domain.com/fullchain.pem;

sslcertificatekey /etc/letsencrypt/live/sizin-domain.com/privkey.pem;

include /etc/letsencrypt/options-ssl-nginx.conf;

ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

location / {

proxy_pass http://127.0.0.1:3000;

proxyhttpversion 1.1;

proxysetheader Upgrade $http_upgrade;

proxysetheader Connection 'upgrade';

proxysetheader Host $host;

proxycachebypass $http_upgrade;

proxysetheader X-Real-IP $remote_addr;

proxysetheader X-Forwarded-For $proxyaddxforwardedfor;

proxysetheader X-Forwarded-Proto $scheme;

}

}

server {

listen 80;

server_name sizin-domain.com www.sizin-domain.com;

return 301 https://$host$request_uri;

}

Yapılandırmayı test edip Nginx’i yeniden yükleyin:

sudo nginx -t

sudo systemctl reload nginx

Statik IP ve DNS Ayarları

Domaininizin sunucunuza doğru yönlendiğinden emin olun. DNS yönetim panelinizden A kaydınızı sunucunuzun IP adresine yönlendirin. Eğer statik IP kullanıyorsanız, bu adres değişmeyeceği için SSL sertifikası ve DNS yapılandırması sorunsuz çalışır.

Özetle: SSL sertifikanız aktif ve HTTP’den HTTPS’e yönlendirme çalışıyor. Artık uygulamanız güvenli bir şekilde erişilebilir durumda. Ancak her şey yolunda gitmeyebilir; bir sonraki bölümde olası hataları ele alacağız.

Ama hepsi bu kadar değil. Gerçek dünyada karşılaşacağınız sorunlar, kurulumdan çok daha fazlasını içerir.

Yaygın Hatalar ve Kesin Çözümleri

Next js projesi yayınlama sürecinde en çok karşılaşılan hataları ve çözümlerini bu bölümde topladım. Bu hataları yıllar içinde defalarca gördük ve her birinin kesin çözümünü belgeledik.

502 Bad Gateway Hatası

Bu hata, Nginx’in Next.js uygulamasına bağlanamadığı anlamına gelir. En yaygın nedenler:

  • Next.js uygulaması çalışmıyor (PM2’de durdurulmuş olabilir)
  • Yanlış port numarası (örneğin uygulama 3001’de çalışıyor ama Nginx 3000’e yönlendiriyor)
  • Uygulama başlatılırken hata oluştu

Çözüm için önce PM2 durumunu kontrol edin:

pm2 status

pm2 logs nextjs-uygulamaniz --lines 50

Eğer uygulama “errored” durumundaysa, loglarda hatanın nedenini görebilirsiniz. Çoğu zaman eksik çevre değişkeni veya yanlış dosya yolu sorunudur.

504 Gateway Timeout Hatası

Next.js uygulamanız isteğe zamanında yanıt veremediğinde bu hata oluşur. Özellikle uzun süren API istekleri veya veritabanı sorguları buna neden olur. Nginx yapılandırmanızdaki proxyreadtimeout değerini artırarak çözebilirsiniz:

location / {

proxy_pass http://127.0.0.1:3000;

proxyreadtimeout 120s;

proxysendtimeout 120s;

proxyconnecttimeout 60s;

}

JavaScript Heap Out of Memory

Node.js uygulamalarında en sık görülen hatalardan biridir. Varsayılan heap bellek sınırı 512 MB’dir. Büyük JSON işlemleri veya yoğun hesaplamalar bu sınırı aşabilir. Çözümü --max-old-space-size parametresini artırmaktır:

pm2 start .next/standalone/server.js --name "nextjs-uygulamaniz" --node-args="--max-old-space-size=2048"

Ancak bu sadece geçici bir çözümdür. Asıl sorun, uygulamanızın neden bu kadar bellek tükettiğini anlamaktır. Kod içinde bellek sızıntısı olabilir.

Statik Dosyalar Yüklenmiyor

Sayfa açılıyor ancak CSS ve JavaScript dosyaları yüklenmiyorsa, genellikle _next/static yolu yanlış yapılandırılmıştır. Standalone modda, statik dosyaların bulunduğu klasörü uygulama dizinine kopyalamanız gerekir:

# .next/static klasörünü standalone dizinine kopyala

cp -r .next/static .next/standalone/.next/static

public klasörünü de kopyala

cp -r public .next/standalone/public

Bu adımı atlarsanız, sayfalarınız stilsiz görünür ve konsolda 404 hataları alırsınız.

Port Çakışması

Sunucuda başka bir uygulama aynı portu kullanıyorsa, Next.js başlatılamaz. Port değiştirmek için PM2 ekosistem dosyasında PORT değerini değiştirin ve Nginx yapılandırmanızı buna göre güncelleyin.

Kritik Uyarı: Hata loglarını okumadan çözüm aramayın. /var/log/nginx/error.log ve pm2 logs çıktıları, sorunun kök nedenini %90 oranında net şekilde gösterir.

Bu hataların çoğunu önlemek için Express.js projelerini yayınlama rehberimizde anlattığımız sistemli yaklaşımı benimseyin. Ayrıca sunucu kaynaklarınızı düzenli izlemek, olası sorunları erkenden fark etmenizi sağlar.

Performans Optimizasyonu İpuçları

Yayınlama sonrası performans, kullanıcı deneyimini doğrudan etkiler. İşte birkaç pratik öneri:

  • Statik dosyaları CDN’e taşıyın: _next/static dosyaları Cloudflare gibi bir CDN üzerinden sunulabilir.
  • Gzip/Brotli sıkıştırma: Nginx’te gzip on; satırını ekleyerek yanıt boyutlarını küçültün.
  • Redis cache: Sık kullanılan veritabanı sorgularını Redis ile önbellekleyin.
  • PM2 cluster mode: Çok çekirdekli sunucularda instances: 'max' ile uygulamayı ölçeklendirin.

Peki tüm bu adımları uyguladıktan sonra ne yapmalısınız? İşte şimdi sonuca bağlıyoruz.

Sonuç: Next.js Projeniz Artık Canlıda

Bu rehberde next js projesi yayınlama sürecini adım adım inceledik. VDS sunucu hazırlığından SSL kurulumuna kadar tüm kritik aşamaları ele aldık. Unutmayın, doğru yapılandırılmış bir sunucu yalnızca uygulamanızı çalıştırmaz; aynı zamanda güvenliği, performansı ve sürdürülebilirliği de garanti eder.

Eğer bu adımları kendiniz uygulamak istemiyorsanız veya daha hızlı bir çözüm arıyorsanız, n8n & Node.js Hosting paketlerimiz tam size göre. AMD Ryzen 9 işlemciler ve NVMe SSD disklerle donatılmış altyapımızda Next.js uygulamalarınız dakikalar içinde yayına alınabilir. Üstelik KeyHelp paneli sayesinde tüm süreçleri görsel arayüzden yönetebilirsiniz.

Projenizi canlıya aldıktan sonra karşılaştığınız sorunları yorumlarda paylaşın. Deneyimlerinizi birlikte değerlendirelim.

Sıkça Sorulan Sorular

Next.js projesi paylaşımlı hostingde yayınlanır mı?

Çoğu paylaşımlı hosting paketi Node.js çalıştırmaz. Statik export kullanıyorsanız herhangi bir hostinge yükleyebilirsiniz. Ancak SSR, API route veya middleware kullanıyorsanız VDS veya Node.js destekli özel hosting gerekir. n8n & Node.js Hosting paketimiz bu ihtiyaca yönelik hazırlanmıştır.

Next.js uygulaması hangi portta çalışır?

Varsayılan olarak 3000 portunda çalışır. Ancak bu portu PM2 ekosistem dosyasında PORT değişkeniyle değiştirebilirsiniz. Nginx yapılandırmanızdaki proxy_pass adresini de aynı portla güncellemeniz gerekir.

Next.js build sonrası .next klasörü sunucuya yüklenmeli mi?

Evet, build işlemi sonucu oluşan .next klasörü üretim için gereklidir. Standalone mod kullanıyorsanız yalnızca .next/standalone klasörünü yüklemeniz yeterlidir. Ayrıca statik dosyalar için .next/static ve public klasörlerini de kopyalamanız gerekir.

PM2 olmadan Next.js uygulaması çalışır mı?

Çalışır ancak SSH oturumunu kapattığınızda uygulama kapanır. Ayrıca sunucu yeniden başladığında otomatik başlamaz. PM2, bu sorunları çözen en popüler araçtır. Alternatif olarak systemd servisi de kullanabilirsiniz.

Next.js projesi için ne kadar RAM gerekir?

Minimum 2 GB RAM öneriyoruz. SSR yoğun uygulamalar için 4 GB veya üzeri daha sağlıklıdır. Node.js heap belleğini --max-old-space-size parametresiyle sınırlayarak kaynak kullanımını kontrol edebilirsiniz.

SSL sertifikasını nasıl yenilerim?

Certbot, sertifikaları otomatik olarak yeniler. sudo certbot renew --dry-run komutuyla yenileme sürecini test edebilirsiniz. Çoğu sistemde bu işlem cron job ile günlük olarak çalışır.

Next.js uygulaması neden 502 hatası veriyor?

502 hatası, Nginx’in uygulamaya bağlanamadığı anlamına gelir. Önce pm2 status ile uygulamanın çalışıp çalışmadığını kontrol edin. Ardından Nginx yapılandırmasındaki port numarasının doğru olduğundan emin olun. Loglar sorunun kaynağını gösterecektir.

İlginizi Çekebilir:Özel Alan Adını (Domain) Ücretsiz Gmail’e Nasıl Bağlarsınız?
share Paylaş facebook pinterest whatsapp x print

Benzer İçerikler

Web Hosting Nedir
Web Hosting Nedir? İnternet Dünyasında İşinizi Nasıl Büyütür?
CentOS Web Panel’de Snuffleupagus ve ModSecurity Kullanımı: SaviorHost’un Güvenlik Stratejisi
n8n Otomasyonlarında “JavaScript Heap Out of Memory” ve Timeout Hatalarının Kesin Çözümü
keyhelp wordpress kurulumu: 2026'da Başarıya Götüren 7 Kritik Adım (Resimli Rehber)
keyhelp wordpress kurulumu: 2026’da Başarıya Götüren 7 Kritik Adım (Resimli Rehber)
XML site haritası oluşturma: 2026’da Google Sıralamanızı Garantiye Alacak 9 Adımlı Rehber
wordpress 6.2.2 güncellemesi
WordPress 6.2.2 Güncellemesi: Yeni Özellikler ve Performans İyileştirmeleriyle Geliyor!

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Are you human? Please solve:Captcha


Saviorhost İnternet Hizmetleri | © 2026 |