猿问

使用Apache部署Go Web应用程序

我找不到用于部署Go Web应用程序的mod_go。使用Apache Web服务器(甚至IIS)在Go中运行Web应用程序还有其他方法吗?

更新:现在,在完成Go的全职工作将近一年之后;这样做(与Apache一起使用Go)使Go的真正目的(就高度并发而言的性能)无效。而且我将nginx用作http / https的反向代理,并很好地支持了Go后端。尽管在使用Go时必须稍微改变一下Web应用程序的思维方式。


忽然笑
浏览 391回答 3
3回答

倚天杖

没有mod_go。(至少我没有听说过这样的事情。)Go Web应用程序本身就是功能强大的Web服务器。您可以在应用程序中监听端口80,然后直接在服务器上运行它。相信我:它确实有效!但是,如果您不这样做(由于其他原因,例如在同一台计算机上安装其他虚拟服务器,负载平衡等原因),则可以将诸如nginx或Apache之类的HTTP服务器用作Go应用程序前面的HTTP代理。我使用nginx,这很棒。这是有关如何使用nginx进行操作的过时但仍然非常有用的指南。我还没有与Apache做这件事,但是这应该帮助。我建议您单独使用Go Web应用程序或将Nginx用作HTTP代理。

呼如林

除了其他选项之外,还有net / http / fcgi软件包。这类似于CGI选项,但是它使用FastCGI,并且您的应用程序可以根据需要保持状态。这是jimt示例的FastCGI版本。请注意,只有两行是不同的。根据您配置Apache的方式,您可能必须将第一个参数更改为其他参数,但是nil是常见的情况。package mainimport (    "fmt"    "net/http"    "net/http/fcgi")func hello(w http.ResponseWriter, r *http.Request) {    fmt.Fprintf(w, "Hello from Go!")}func main() {    http.HandleFunc("/", hello)    fcgi.Serve(nil, nil)}
随时随地看视频慕课网APP

相关分类

Go
我要回答