2013-02-17 11 views
9

Fark nedir? Net/http/fcgi paketini kullanırsam, her istek yeni bir goroutine uygulanır. Net/http ListenAndServe için aynı gibi görünüyor ... değil mi? Hangi avantajları ve dezavantajları?Net/http ve net/http/fcgi arasındaki fark Golang

+2

Fcgi veya cgi? Hangisini soruyorsun? –

cevap

12

net/http/fcgi, yeni bağlantılar için FastCGI protokolü aracılığıyla dinlemenize izin verirken, net/http ListenAndServe gelen http bağlantılarını dinlemek için var. Bir FastCGI dinleyicisi ile, Go sürecinin önünde, gelen bağlantıları proxy yapan ve size Go işlemine FastCGI aracılığıyla istek gönderen bir http sunucusuna ihtiyacınız vardır.

FastCGi, aynı bağlantı noktasında açığa çıkarmanız gereken birden çok hizmetiniz varsa yararlı olabilir. Ön uç olarak Apache veya Nginx gibi bir şey çalıştırabilir ve belirli URL'leri Go to prosesinize FastCGI üzerinden gösterebilirsiniz.

Bu sizin durumunuz değilse ve bir bağlantı noktasında bir Go web sunucusunu çalıştırmak istiyorsanız, net/http ile yapıştırın.

+0

Teşekkürler! Ve Go + nginx'i kullanmak istersem? Go’daki net/http/fcgi’yi kullanmak ya da dinamik istekleri standart Go web sunucusuna yönlendirmek daha mı iyi? – Tyranron

+0

Her iki şekilde de yapabilirsin. Nginx, http proxy hizmeti veya FastCGI'yi tersine çevirecek. Go, http isteklerini ayrıştırmakta oldukça hızlı olduğu için, çok katmanlı bir dağıtım seçeneğine ihtiyacınız varsa, Nginx'in ters http proxy'sini kullanmanın daha kolay olduğunu düşünüyorum. – Daniel