2013-02-17 12 views
9

Qual è la differenza? Se utilizzo il pacchetto net/http/fcgi, ogni richiesta verrà eseguita nella nuova goroutine. Sembra essere lo stesso per net/http ListenAndServe ... non è vero? Quali vantaggi e svantaggi?Differenza tra rete/http e rete/http/fcgi in Golang

+2

Fcgi o cgi? Di quale stai veramente chiedendo? –

risposta

12

Il net/http/fcgi consente di ascoltare tramite il protocollo FastCGI per le nuove connessioni mentre il net/http ListenAndServe è lì per ascoltare le connessioni HTTP in arrivo. Con un listener FastCGI è necessario un server http seduto davanti al processo Go che sta inoltrando le connessioni in entrata e inviando le richieste tramite FastCGI al processo Go.

FastCGi può essere utile se si dispone di più servizi che è necessario esporre sulla stessa porta. Puoi eseguire qualcosa come Apache o Nginx come front-end ed esporre determinati URL al tuo processo Go tramite FastCGI.

Se questo non è il tuo caso e vuoi solo eseguire un server web Go su una porta, continua con net/http.

+0

Grazie! E se voglio usare Go + nginx? È meglio usare net/http/fcgi in Go? ... o reindirizzare le richieste dinamiche al web server standart Go? – Tyranron

+0

Potresti farlo in entrambi i modi. Nginx eseguirà il servizio proxy HTTP inverso o FastCGI. Poiché Go è già abbastanza veloce nell'analisi delle richieste HTTP, penso sia più semplice utilizzare il proxy HTTP inverso di Nginx se è necessaria un'opzione di distribuzione a più livelli. – Daniel