Golang中net/http和net/http/fcgi的区别

12

有何区别? 如果我使用net/http/fcgi包,每个请求都将在新的goroutine中执行。net/http ListenAndServe看起来也是如此......对吗? 有哪些优缺点?


2
Fcgi还是cgi?你真正想问哪一个? - David Grayson
1个回答

15
net/http/fcgi 允许你通过 FastCGI 协议监听新连接,而 net/http 中的 ListenAndServe 则用于监听传入的 HTTP 连接。使用 FastCGI 监听器时,需要在 Go 进程前面放置一个 HTTP 服务器,该服务器会代理传入的连接,并通过 FastCGI 将请求发送到 Go 进程。
如果您需要在同一端口上公开多个服务,则可以使用 FastCGi。您可以运行像Apache或Nginx之类的前端并通过FastCGI将特定的 URL 公开到Go进程中。
如果这不是您的情况,而您只想在某个端口上运行Go Web服务器,请使用net/http

谢谢!如果我想使用Go + nginx,应该怎么做?是在Go中使用net/http/fcgi更好呢?还是将动态请求重定向到标准的Go Web服务器? - Tyranron
你可以选择两种方式。Nginx 可以提供反向 HTTP 代理服务或 FastCGI。由于 Go 已经非常快地解析 HTTP 请求,如果需要多层部署选项,我认为更简单的方法是利用 Nginx 的反向 HTTP 代理。 - Daniel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接