【发布时间】:2016-01-12 15:04:38
【问题描述】:
我已经阅读了一些关于 go 和 nginx 的 questions,但我没有找到任何答案。
我认为(我不是专家)在net/http go 服务器前使用 nginx 作为反向代理与直接使用 nginx 托管你的 go 应用程序不同。
如果我错了就骂我好吗?
我遇到了这个问题,因为我需要开发一个应用程序(可能使用 go,只是为了学习新东西)并完全控制网络服务器,尤其是它用来回答请求的工作人员数量。
那么,问题来了:
是否可以直接在nginx上托管一个go app,还是nginx只提供静态文件(如果答案是“NO”,那么第二个问题没有多大意义)?
上述两种方法之间的主要区别是什么,确切地说,不同的方法是否会以某种方式影响配置?
我害怕告诉 nginx:“好吧,请使用 8 个工作人员”,然后什么都不告诉 go 的内部网络服务器......会发生什么?
非常感谢您
【问题讨论】:
-
没有“直接用 nginx 托管 go 应用”这样的东西。
-
我不确定您所说的“在 nginx 上托管一个 go 应用程序”是什么意思。 nginx 是一个网络服务器,而您的应用程序(根据定义)是一个应用程序。常见的做法是让您的应用在本地端口(比如 4040)上进行侦听,并在其前面设置 nginx 以从远程端口 80 反向代理到本地端口 4040,以便您的应用处理请求。
-
类似地告诉 nginx 使用 8 个工作线程意味着有 8 个工作线程可用于处理反向代理请求。如果您一次收到很多请求,这可能会有所帮助,但是由于 nginx 只是在这里(双关语)作为路标服务,因此可能没有必要。 Golang 的工作人员与 nginx 的工作人员完全分开。