我在Go上写了一个Web应用程序。 目前我有一个看起来像这样的布局:
[CloudFlare] – > [Nginx] – > [程序]
Nginx做了以下工作:
www.domain.tld
– > domain.tld
) X-Frame-Options
标题。 access.log
。 在过去我会使用Nginx,因为它执行SSL终止和一些其他任务。 由于现在由CloudFlare处理,所以它本质上是静态图像。 鉴于Go有一个内置的HTTP FileServer,CloudFlare可以为我处理静态图像,所以我开始怀疑为什么Nginx会在第一位置。
在前面没有任何东西是不好的主意?
在你的情况下,你可能会逃避不运行nginx,但我不会推荐它。
然而,正如我在这个答案中提到的,还有很多事情可以做,你需要在Go中“重塑”。
如果您正在运行内部Web服务或者轻量级的东西,或者真的不需要nginx的额外功能,那么Running Go standalone是有意义的。 如果您正在构建Web应用程序,那么nginx将帮助从应用程序本身抽象出“Web服务器”任务。
我根本不会用nginx来说实话,一些不错的老兄测试了快速的cgi
go
+ nginx
然后去了独立的库。 他提出的结果是相当有趣的,独立的托管似乎在处理请求比在nginx
后面使用它好得多,最后的建议是,如果你不需要nginx的特定功能,不要使用它。 全文
你可以运行它作为独立的,如果你在你的网站上使用部分/完整的ssl
,你可以使用另一个去http
服务器重定向到安全的https
路由。
如果你不需要,不要使用ngnix。 Go以较少的行执行SSL,那么你必须在ngnix配置文件中写入。 唯一的原因是免费的日志记录,但我想知道有多少代码行登录。 在俄罗斯有关于200行代码中的反转代理的很好的文章 。 如果Go可以用来代替ngnix,那么当你使用Go时,ngnix是不需要的。 如果您希望在同一站点上有几个Go进程或Go和PHP,则需要使用ngnix。 或者,如果您使用Go,并且在添加ngnix时遇到了一些问题,则可以解决问题。