我们在
Python中有并发问题.这些WSGI服务器不是很好.我看看周围,没有像Golang写的WSGI服务器,它的goroutine.
有什么原因?
WSGI协议特定于Python.有了Go,你有三个选择(实际上是四个,但是纯粹的
CGI
应该被认为不适用于中等到高负载设置):
Go的标准库Built-in HTTP
serving facilities.
在这种情况下,您的应用程序是独立服务器.这可能是最简单的设置,但可能会出现以下问题:
>要使用降级的权限(您必须执行此操作)在特权端口号(低于1024,80在此范围内)运行您的应用程序,则需要使用专门的包装器或POSIX功能.
>为了提供优雅的重新部署而不会丢失连接,您将需要另一个包装(如goagain
).
>与上述相同,但以Web服务器形式的反向HTTP代理后面.
大部分消除了独立变体的问题,但仍然具有传递完整HTTP流量的开销.
FastCGI通过一个合适的网络服务器. Nginx和Apache(和许多其他)都可以这样. FCGI客户端实现为available in the Go standard library.
除了不存在独立设置的问题外,还实现了更有效的数据交换协议.另一个好处是,您的Go服务器可能会使用与反向HTTP代理变体中涉及的TCP套接字相比传输成本更低的Unix管道与前端Web服务器进行通信.
所以,如果你的设置目前使用WSGI,我会说FCGI.