在 Phusion 乘客后面运行 Go 网络服务器

Phusion Passenger 有一个很好的生态系统,可以在网络服务器后面运行网络应用程序。我从 Ruby 和 Node.js 应用程序中获得了它的经验。现在我重写了一个 webservice 来使用 Go,是时候部署它了。将Passenger+Nginx 放在go 网络服务器的前面似乎很自然(使用net/http)。环顾四周似乎没有人尝试过这个,或者在任何地方询问过这个......

我似乎找不到附加自定义二进制文件的配置选项,而不是passenger_ruby/passenger_node等。

可以(应该?)我使用 Phusion Passenger 来运行我创建的二进制文件go build吗?


宝慕林4294392
浏览 130回答 2
2回答

慕斯709654

不,你不能。乘客实际上并没有在内部使用 HTTP;它使用自定义协议(如 FastCGI 或 SCGI,但与两者不兼容)与您的应用程序通信,并且需要在应用程序中使用自己的代码来管理和调度请求。他们没有为 Go 提供这样的支持代码。

噜噜哒

现在这实际上是可能的,Passenger 6 增加了通用语言支持。您可以在此处找到教程:https : //www.phusionpassenger.com/docs/advanced_guides/gls/go.html基本上:编译你的 Go 程序并将二进制文件放在方便的地方。应用程序需要接受配置以选择在哪个端口上运行。passenger start --app-start-command 'env PORT=$PORT ./main' 假设 main 是您的程序名称。乘客将尝试告诉应用程序从哪个端口开始,以便它可以拥有端口 80/443。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go