我正在Go中编写一个Web应用程序。目前我有一个如下所示的布局:
[CloudFlare] - > [Nginx] - > [程序]
Nginx执行以下操作:
www.domain.tld
- > domain.tld
)X-Frame-Options
。access.log
。过去我会使用Nginx执行SSL终止和其他一些任务。由于现在由CloudFlare处理,所以它实际上只是静态图像。鉴于Go有一个内置的HTTP FileServer,CloudFlare可以接管处理静态图像,我开始想知道为什么Nginx首先处于前面。
将任何内容放在前面是不是一个坏主意?
答案 0 :(得分:6)
在你的情况下,你可能会因为没有运行nginx而逃脱,但我不推荐它。
然而,当我触及in this answer时,仍然可以做很多事情,你需要在Go中“重新发明”。
答案 1 :(得分:4)
我不会使用nginx说实话,一些不错的家伙快速测试cgi
go
+ nginx
并且只是去独立的库。他提出的结果非常有趣,独立托管似乎在处理请求方面比在nginx
后使用它要好得多,最后的建议是如果你不需要nginx的特定功能那么用它。 full article
您可以单独运行它,如果您在网站上使用部分/完整ssl
,则可以使用另一个转发http
服务器重定向到安全https
路由。
答案 2 :(得分:4)
如果您不需要,请不要使用ngnix。 Go在较少的行中执行SSL,然后您必须在ngnix配置文件中写入。 唯一的原因是免费日志记录,但我想知道在Go中登录了多少行代码。 俄语中有很好的article关于Go中200行代码的反向代理。 如果可以使用Go而不是ngnix,则在使用Go时不需要ngnix。 如果您希望在同一站点上安装多个Go进程或Go和PHP,则需要ngnix。 或者如果您使用Go并且在添加ngnix时遇到问题,那么它可以解决问题。