Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nginx 在Phusion Passenger后面运行Go Web服务器_Nginx_Go_Passenger - Fatal编程技术网

Nginx 在Phusion Passenger后面运行Go Web服务器

Nginx 在Phusion Passenger后面运行Go Web服务器,nginx,go,passenger,Nginx,Go,Passenger,Phusion Passenger有一个很好的生态系统,可以在Web服务器后面运行Web应用程序。我在Ruby和Node.js应用程序中使用过它。现在我重写了一个Web服务来使用Go,现在是时候部署它了。使用net/http将Passenger+Nginx放在go Web服务器前面似乎很自然。四处搜索似乎没有人尝试过,也没有人问过这件事 我似乎找不到一个配置选项来附加自定义二进制文件,而不是passenger\u ruby/passenger\u节点等 可以吗?我使用Phusion Passen

Phusion Passenger有一个很好的生态系统,可以在Web服务器后面运行Web应用程序。我在Ruby和Node.js应用程序中使用过它。现在我重写了一个Web服务来使用Go,现在是时候部署它了。使用net/http将Passenger+Nginx放在go Web服务器前面似乎很自然。四处搜索似乎没有人尝试过,也没有人问过这件事

我似乎找不到一个配置选项来附加自定义二进制文件,而不是passenger\u ruby/passenger\u节点等


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

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

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

这实际上是可能的,乘客6增加了通用语言支持。您可以在此处找到教程:

基本上:

编译Go程序,并将二进制文件放在方便的地方。应用程序需要接受配置以选择在哪个端口上运行。 乘客启动-应用程序启动命令'env PORT=$PORT./main'假设main是您的程序名。
乘客将尝试告诉应用程序要启动哪个端口,以便它可以拥有端口80/443。

这实际上是可能的,现在乘客6添加了通用语言支持。您可以在此处找到教程:

基本上:

编译Go程序,并将二进制文件放在方便的地方。应用程序需要接受配置以选择在哪个端口上运行。 乘客启动-应用程序启动命令'env PORT=$PORT./main'假设main是您的程序名。 乘客将尝试告诉应用程序启动哪个端口,以便它可以拥有端口80/443