为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
宝慕林4294392 2021-12-06 16:42:04
Phusion Passenger 有一个很好的生态系统,可以在网络服务器后面运行网络应用程序。我从 Ruby 和 Node.js 应用程序中获得了它的经验。现在我重写了一个 webservice 来使用 Go,是时候部署它了。将Passenger+Nginx 放在go 网络服务器的前面似乎很自然(使用net/http)。环顾四周似乎没有人尝试过这个,或者在任何地方询问过这个......我似乎找不到附加自定义二进制文件的配置选项,而不是passenger_ruby/passenger_node等。可以(应该?)我使用 Phusion Passenger 来运行我创建的二进制文件go build吗?
查看完整描述

2 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

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


查看完整回答
反对 回复 2021-12-06
?
噜噜哒

TA贡献1784条经验 获得超7个赞

现在这实际上是可能的,Passenger 6 增加了通用语言支持。您可以在此处找到教程:https : //www.phusionpassenger.com/docs/advanced_guides/gls/go.html

基本上:

  1. 编译你的 Go 程序并将二进制文件放在方便的地方。应用程序需要接受配置以选择在哪个端口上运行。

  2. passenger start --app-start-command 'env PORT=$PORT ./main' 假设 main 是您的程序名称。

乘客将尝试告诉应用程序从哪个端口开始,以便它可以拥有端口 80/443。


查看完整回答
反对 回复 2021-12-06
  • 2 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信