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.