Golang 如何将网站部署到主机

我已经从reg.ru购买了主机。我编译了我的网站并将其放在子域中。当我运行我的应用程序时,它运行良好,没有错误。但是当我输入该子域时,我的网站没有响应。我尝试添加.htaccess文件但没有成功。Golang将我的网站部署到托管是否正常?还是我应该买一台服务器?我可以告诉托管服务于我的应用程序对该子域的请求吗?



慕码人2483693
浏览 116回答 2
2回答

qq_花开花谢_0

Golang 是一种编译型语言。编译源代码的输出是一个二进制文件,可以直接在操作系统(编译)上执行,而不需要任何其他软件。编译后的二进制文件本身包含一个使用 http 请求的网络服务器。这是与 PHP 等解释性语言的主要区别,后者需要网络服务器(Apache、Nginx)将传入请求转换为 PHP 可以理解的协议。我尝试添加 .htaccess 文件但没有成功该.htaccess文件是 Apache 网络服务器配置文件,运行已编译的网络服务器应用程序不需要它。将我的Golang网站部署到托管上正常吗?还是我应该买一台服务器?网站托管提供商希望您运行 PHP 或任何其他理解 CGI 协议的应用程序。为了托管您的 golang webapp,您应该像对待任何其他编译语言一样进行操作:从经典托管提供商处购买服务器 (VPS) 或使用公共云提供商。您的另一种选择是使用像 Google 的App Engine这样的托管平台。它需要您部署 golang 源代码,并为您管理其他一切。它可能会为您省去一些 devops 的麻烦。

函数式编程

共享主机计划支持 CGI 是很常见的。net /http/cgi包在 go 中提供了对此的支持。只要您使用标准库中的 http 服务器,它只需要对您的 go 程序进行微小的更改。http.ListenAndServe(":8080", myServeMux)会变成cgi.Serve(myServeMux)。 http.ListenAndServe(":8080", nil)会变成cgi.Serve(nil)。请注意,您不再指定端口,因为该端口现在已在网络服务器上配置。对此有一些注意事项:这比内置的 http 服务器慢,因为您的程序必须为每个页面加载从头开始。也就是说,go 启动得非常快。只要您的应用程序在启动时没有一堆事情要做,那就还不错。您不能运行后台线程。您的程序在请求进入时启动,并应在响应发出后立即结束。内存和 go 通道不能在不同的请求之间共享。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go