问题 Golang中net / http和net / http / fcgi之间的区别


有什么不同? 如果我使用net / http / fcgi包,则每个请求都将在新的goroutine中执行。 net / http ListenAndServe似乎是一样的......不是吗? 有什么优缺点?


6724
2018-02-17 19:17


起源

Fcgi或cgi?你真正问的是哪一个。 - David Grayson


答案:


net/http/fcgi 允许您通过FastCGI协议监听新连接,而不是 net/http ListenAndServe用于监听传入的http连接。使用FastCGI侦听器,您需要一个位于Go进程前面的http服务器,该服务器代理传入连接并通过FastCGI向Go进程发送请求。

如果您需要在同一端口上公开多个服务,则FastCGi非常有用。您可以运行Apache或Nginx之类的东西作为前端,并通过FastCGI向您的Go进程公开某些URL。

如果这不是你的情况,你只想在端口上运行Go web服务器,坚持下去 net/http


13
2018-02-17 19:25



谢谢!如果我想使用Go + nginx?在Go中使用net / http / fcgi是不是更好?...或者将动态请求重定向到标准Go webserver? - Tyranron
你可以这样做。 Nginx将执行反向http代理服务或FastCGI。由于Go在解析http请求方面已经非常快,我认为如果需要多层部署选项,只需使用Nginx的反向http代理就更简单了。 - Daniel