2009-07-29 18 views
18

Bugün Cherokee üzerinde Django kuruyordum (SCGI kullanarak), ve ben the Django docs web sunucusu ve Django arasındaki iletişim için bir ana bilgisayar/bağlantı noktası kombinasyonu veya soket kullanabileceğinizi söyledim.FastCGI port vs on soket

onlar konuda söylenecek tek şey

Ne seçim tercihi tarzıdır olduğu; Bir TCP soketi, izin sorunları nedeniyle genellikle daha kolaydır.

(Bu arada, bir ana bilgisayarla değil, bir soketle bunu yaparken izin sorunları yaşadım :).

Sistem programlama sistemimden yuvaların nasıl çalıştığını hatırlıyorum, ancak ikisi arasında etkili farkın ne olduğunu merak ediyorum. Bir şey seçimi varsa, konuyla ilgili bir görüşe sahip birisi var, bu yüzden bunu elde etmeyi umuyordum. Özellikle, herhangi bir performans farkı var mı?

Ya da, gerçekten hiç önemli değil, sadece bir onay istiyorum, bu yüzden programlamaya devam edebilir ve bu sysadmin-y öğelerini görmezden gelebilirim.

+0

Hem TCP soketi hem de unix adında bir soket yuva olacaktır. Hangisi ile ilgili sorunlarınız oldu? – Thomas

+0

Bir süre önceydi, ama dosya sistemimdeki bir .sock dosyasına bir lighttpd işaret etmem gerektiğini hatırlıyorum. Bu konuda daha fazla okumam gerek. –

cevap

36

UNIX soketi dosya sisteminde dosya olarak verilir. Kullanıcı/grup değerlerini ve izinleri doğru bir şekilde ayarlamanız gerekir. Ayrıca kullandığınız herhangi bir hapishanede olması gerekir (postfix + mysql kullanırken yaygın bir hata).

Bir bağlantı noktasına sürece bağlamak gibi bir TCP soket için bunu yapmak gerekmez> 1000

Bir UNIX soket bir şebeke protokolü ve böylece atlar olmadığı için biraz daha hızlı kabul edilebilir Ağ yığını, ancak tek bir makine ile sınırlıdır. Diğer ellerde TCP, farklı ana bilgisayarlarda çalışan hizmetlere bağlanmanızı sağlar.

+21

port> 1023 aslında – Thomas

6

Sanırım gerçek fark, kısa ömürlü bağlantılarla çok yüksek bir bağlantı oranınız varsa, kullanılan bağlantı noktalarının TCP ile bir süreliğine TIME_WAIT durumunda kalması nedeniyle bağlantı noktalarının bitmesidir. Adlandırılmış soketlerle değil.

Yalnızca yerel ana makine tarafından kullanılacağını biliyorsanız, yerel bağlantılar için adlandırılmış bir soket kullanırdım. Ama bu kullanım için .... evet gerçekten önemli değil. Performans bilge ya da başka türlü değil. Fikrinizi değiştirirseniz daha sonra değiştirmek kolaydır. Sadece bu seçeneği kullanırsanız TCP portunu güvenlik duvarı kullandığınızdan emin olun.

Ayrıca bir TCP soketi de bir sokettir.

+0

Yardımcı oldu mu, teşekkürler! –