nginx unix alan adı soketi hatası


18

Fedora 17 kullanıyorum ve nix'i uwsgi ile unix etki alanı soketini kullanarak kurduğumda, soketi uygun izinle bir dizine yerleştirdiğimde sorun yok, ancak soketi yerleştirdiğimde /tmpnginx hatasına neden olacak:

connect() to unix:/tmp/MySite.sock failed (2: No such file or directory) while connecting to upstream

Dosya mevcut ve nginx kullanıcısı için okuma / yazma iznine sahip. Ama bu hataya neden olan şey, beni gerçekten delirtiyor, biri bunu çözebilir.

Yanıtlar:


33

İşlemler arası iletişim için tasarlanmış soketleri yerleştiremezsiniz /tmp.

Güvenlik nedeniyle, Fedora'nın son sürümleri ad alan geçici dizinler kullanır , yani her hizmet tamamen farklı görür /tmpve bu dizinde yalnızca kendi dosyalarını görebilir.

Sorunu çözmek için, soketi /run(önceden bilinen /var/run) gibi farklı bir dizine yerleştirin .


1
/ run normal bir kullanıcı için yazılamaz
hostmaster

1
/rundoğrudan yazılabilir değildir, ancak systemd'nin altında her iki işlem tarafından yazılabilen bir dizin oluşturmasını isteyebilirsiniz .
Michael Hampton

Bu aramalara yardımcı olmak için bu, centos 7 için de geçerlidir ve soket klasörünü çalışmış / çalıştırılmış olarak taşımak için de geçerlidir. Bu sorunu bulmak kolay değildir, çünkü her hesap klasörü ve dosyayı tmp'de görebilir (test etmek için 777'yi ayarlayın), bu nedenle işlemlerin yapamayacağını asla tahmin edemezsiniz.
JosephK

0

EVET! BU YARDIMCI OLDU!

Uwsgi'den gelen check-startup-log mesajlarını görüyordum, ancak başlangıç ​​loglarında hiç veri yoktu, ne olduğunu bulamadı. Çıktı, çorap dosyasını non / tmp konumuna değiştirmem ve eklemem gerekiyordu:

catch-istisnaları = true

wsgi'nin ini dosyasına. çıktı, varolmayan bir dizine günlük dosya işleyicisi konumunu belirttim, bu yüzden hataları ilk etapta kaydedemedim.

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.