Nginx yeniden yüklenemedi - neden nasıl izlenir?


96

Merhaba Nginx sunucum bir süredir 12.04 Ubuntu sunucusunda harika çalışıyordu.

Kademeli olarak çeşitli parçalara cıvata taktım ve wordpress sayfamdaki yükleme sürelerini optimize etmeye başladım.

Ana bilgisayar dosyamda birkaç değişiklik yaptıktan sonra:

sudo /etc/init.d/nginx reload

Almak için:

  • Nginx yapılandırmasını yeniden yükleme nginx [fail]

Ek bilgi veya muhakeme verilmez. Sunucumu nasıl yeniden başlatabilirim ki yeniden yükleme sırasında herhangi bir hata ifadesi yazdırabilir, böylece hatayı izlemeye başlayabilirim.

Bonus bir soru için:

Bu Nginx sistem yöneticileri için, ana bilgisayarlarda birkaç değişiklik yaptıktan sonra aniden değişiklik yaptınız ve birdenbire aniden nginx sunucunuz yeniden yüklenmeyecek (bu arada her şey hala çalışıyor!) neden ya da hata ayıklamak için işleri parçalamaya başla!


4
Sözdiziminizi sudo nginx -t(veya yapılandırma önekiniz ve ana yapılandırma dosyası sudo nginx -p /etc/nginx -c nginx.confnerede ) kontrol edin. /etc/nginxnginx.conf
Lekensteyn

sudo nginx -s yeniden yükle, aynı zamanda bana bir okuma verdi!
Huw

Yanıtlar:


145

Config dosyası ile ilgili mesajlar için syslog (/ var / log / syslog) kontrol edin.

Komut satırından çalıştırabilirsiniz:

nginx -c /etc/nginx/nginx.conf -t

nginx'in yapılandırmanızı hatalar için kontrol edin.


ah ha! çok yararlı oluyor gibi görünüyorum: "/ blog / wp-admin" konumu dışında "/blog/.*\.php$" /etc/nginx/site-configs/wordpress.conf:1 içinde ... ilginç , bana devam etmek için bir şey verir!
Huw

2
ARGH! Üç saatlik bir arama ve cevapsız kaldım; Tüm yardımlarınız için teşekkürler, izlemede gerekli olduğu kanıtlandı. Bu arada, Ars Technica Web servisli yayınları takip ettikten sonra herhangi biri bu soruya ulaşırsa. Sanırım şimdi onlardan iyi bir diş tarağı ile geçtim!
Huw

4
Bu komutu çalıştırmak bana verir nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successfulve yine de nginx'i başlatamam.
Bill Garrison

1
@BillGarrison daha fazla bilgi için syslog ve nginx hata günlüğünü kontrol edin
Dlloyd


7

Muhtemelen hatalarını kontrol etmelisin /var/log/nginx/error.log.

Benim durumumda ipv6 için port eklemedim. Bunu da yapmanız gerekir (nginx'i 80 dışındaki bir bağlantı noktasında çalıştırıyorsanız): listen [::]:8000 default_server ipv6only=on;


1
Not: eğer izinleriniz yanlışsa /var/log/nginx/error.log, nginx hatayı ona yazamaz ve sessizce başarısız olur. Konfigürasyonunuzu kabul edilen cevap ( nginx -c /etc/nginx/nginx.conf -t) gibi kontrol etmek yardımcı olacaktır.
user898763452

5

Nginx'i geri almak ve çalışmak için bu komutları çalıştırdım:

# remove nginx conf files
apt-get purge nginx

# reinstall
apt-get install nginx

# make sure the default site is enabled
ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

# start nginx
sudo /etc/init.d/nginx start 

nginx şimdi çalışıyor!


2
Çıkarmanız ve temizlemeniz gerekmez, sadece temizleyin. Ve bu sorunun cevabını alıp almadığını bilmek zor, çünkü tasfiye tüm yapılandırma dosyalarını kaldıracak.
Panter

1
İdeal olarak - ve diğer kullanıcılar için, hatanın meydana geldiği yerdeki maksimum okuma miktarını almayı ve mevcut kurulumumu temizleme ve sıfırdan başlamak yerine tamir etmeyi tercih ederdim
Huw

1
@ bodhi.zazen Cevabımı düzelttim "Huw" dediği gibi, ben de aynı fikirdeyim. Sadece kurulum ve kurulumun başındaydım, nginxbu yüzden hatayı bulmak yerine baştan kaldırmak ve yeniden başlamak önemli bir şey değildi. İkiniz için de teşekkür ederiz.
Aaron Lelevier

benim durumumda sadece bu komutu kullanmaya başlamam sudo /etc/init.d/nginx start
Sizzling Code

3

Senin Kontrol /etc/nginx/sites-available/defaultkullandığınız bunun ya da her türlü kopya ve yorumsuz (kaldırıldığından emin olun #herhangi) }Eğer ilgili olarak gerekebilir {olasılıkla uncommented olduğunu. Bu benim sorunumdu.


2

Nginx'i temizlemeniz gerekiyor, sonra komut satırına yazın:

ln -s /etc/nginx/sites-availbale/default .etc/nginx/sites-enabled/default

Şunu musunuz apt-get purge?
RolandiXor

2

kullanarak tüm dosyaları yeniden aç

nginx -s reopen

sonra kullan

nginx -s reload

Nginx yardımının göstereceğini gösterdiği gibi, sinyali master işlemine göndererek nginx'i yeniden yükleyin.

İstek: lütfen purgeyeni başlayanlar için sorunlara neden olabileceğinden (tüm konfigürasyonlar kaybolacaktır), dikkatli komutlar vermeyin. .... BÜYÜK bir sorun.


1

Size böyle hatalar veriyorsa kontrol edebilirsiniz journalctl -xe.
Bir işletim sistemi sorununda ne olduğu hakkında birçok bilgi var.
çizgiyi bulabilir veya basitçe journalctl -xe | grep nginxnginx'in kendisi tarafından çalıştırılmaya çalışıldığında ne olduğunu bulmak için kullanabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.