Nginx yapılandırmasını açılışta okur. Bir dosyadaki değişiklik, ona yeniden okumasını söyleyene kadar hiçbir şey yapmaz; nasıl söylediğiniz de birinin fark edip etmeyeceğine karar verir.

Önce her zaman sınayın

nginx -t

Her şeyi ayrıştırır ve beğenmediği şeyin dosyasını ve satırını söyler. Hiçbir şeyi değiştirmez. Bunu atlamanın hiçbir gerekçesi yoktur.

Yeniden yükleyin, yeniden başlatmayın

  • reload - yeni yapılandırmayla yeni işçiler başlatır, eskilere ellerindekini bitirtir, sonra onları emekliye ayırır. Hiçbir bağlantı düşmez.
  • restart - her şeyi durdurur ve baştan başlar. Yolda olan her istek başarısız olur.
systemctl reload nginx
Bozuk bir yapılandırmayla yeniden yükleme siteyi BOZMAZ: Nginx yeni yapılandırmayı reddeder ve eskisiyle çalışmayı sürdürür. Bozuk bir yapılandırmayla yeniden başlatma ise siteyi yerde bırakır. Yalnızca bu bile yeniden yüklemenin gerekçesidir.

Yeniden başlatmanın gerçekten gerektiği yerler

  • Nginx'in çalıştığı kullanıcıyı değiştirmek.
  • Bir modül eklemek.
  • Ana bağlamda, çalışan işçilere uygulanamayacak bir şeyi değiştirmek.

Değişikliği geri alınabilir tutun

cp /etc/nginx/sites-available/mysite{,.bak-$(date +%F)}
# edit, test, reload
# and if it is wrong:
cp /etc/nginx/sites-available/mysite.bak-2026-09-04 /etc/nginx/sites-available/mysite
nginx -t && systemctl reload nginx

Gerçekte neyin yüklü olduğunu denetleyin

nginx -T | grep -A5 "server_name yourdomain.com"

Büyük T, çalışan yapılandırmanın tamamını her include çözülmüş hâlde yazdırır; düzenlediğiniz dosyanın kullanılan dosya olduğundan emin olmanın tek yolu budur.

Bir değişiklik hiçbir şey yapmıyor gibi görünüyorsa aynı adla eşleşen ikinci bir sunucu bloğu arayın. İlk eşleşme kazanır ve sites-enabled içinde unutulmuş bir dosya bunun olağan sebebidir.