使用Go';s用于生产的HTTP服务器

使用Go';s用于生产的HTTP服务器,go,Go,我是Golang的新PHP开发人员。PHP自带一个内置服务器,不推荐用于生产。我在Go中阅读了关于web开发的文章,还有。它们都使用http.listendServe()创建web服务器。我只是想知道这个服务器是否可以在生产中使用,或者它只是一个虚拟服务器,比如PHP内置服务器?我的意思是,它能像Apache或ngnix服务器那样处理巨大的流量吗?简短回答:是的 更详细的回答:您当然可以将内置的Web服务器用于生产流量。你今天很有可能使用过它,因为谷歌使用它提供了一些流量。我知道很多公司,包括我

我是Golang的新PHP开发人员。PHP自带一个内置服务器,不推荐用于生产。我在Go中阅读了关于web开发的文章,还有。它们都使用http.listendServe()创建web服务器。我只是想知道这个服务器是否可以在生产中使用,或者它只是一个虚拟服务器,比如PHP内置服务器?我的意思是,它能像Apache或ngnix服务器那样处理巨大的流量吗?

简短回答:是的

更详细的回答:您当然可以将内置的Web服务器用于生产流量。你今天很有可能使用过它,因为谷歌使用它提供了一些流量。我知道很多公司,包括我工作的那家公司,都将it用于生产流量。顺便说一句,我不知道有哪个在围棋中广泛使用的Web服务器不使用标准Web服务器


但请记住,您需要调整客户端超时等内容,使其真正健壮,并可能限制传入连接等。

要添加到@Not_a_Golfer的答案中:Go的web服务器非常可靠,迄今为止经过了很好的测试

但是,您可能会将其置于nginx、Apache或HAProxy等反向代理之后,原因如下:

  • SSL终止(nginx有许多附加的TLS功能,您必须自己部分实现,比如简单的OCSP装订支持)
  • 代理缓存(从缓存中提供静态响应,如果Go应用程序崩溃,则提供500)
  • 性能测井
  • SPDY支持(尽管Go和nginx可能会同时获得HTTP/2)
  • 内置gzip支持和选项
  • 静态文件的文件描述符缓存

如果我有选择的话,我通常更倾向于将nginx放在前面,因为尽管您可以在Go中实现所有这些功能,但仍有一些车轮的重新发明。您可以使用中间件(如and Go自己的加密/tls库)实现大部分功能,如果您不是ops人员和/或希望保持精简,那么,直接从Go运行所有内容对于生产来说仍然很好。

我计划主要使用nginx进行代理缓存,因为它感觉Go服务器本身就是一个强大的执行者。他们使用Go服务器的是谷歌URL缩短器吗?@AkashKumarSharma不知道。有一件事我知道,它运行的是他们的下载服务器。看到这里,这是一个伟大的谈话OP问“我只是想知道这个服务器是否可以用于生产或只是一个虚拟服务器”。我承认,这不是一个基于观点的问题,它是一个有明确答案的重点问题(是的),但也不是一个简单的编程问题。