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

Golang 如何将网站部署到主机

Golang 如何将网站部署到主机

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

2 回答

?
qq_花开花谢_0

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

Golang 是一种编译型语言。编译源代码的输出是一个二进制文件,可以直接在操作系统(编译)上执行,而不需要任何其他软件。编译后的二进制文件本身包含一个使用 http 请求的网络服务器。这是与 PHP 等解释性语言的主要区别,后者需要网络服务器(Apache、Nginx)将传入请求转换为 PHP 可以理解的协议。

我尝试添加 .htaccess 文件但没有成功

.htaccess文件是 Apache 网络服务器配置文件,运行已编译的网络服务器应用程序不需要它。

将我的Golang网站部署到托管上正常吗?还是我应该买一台服务器?

网站托管提供商希望您运行 PHP 或任何其他理解 CGI 协议的应用程序。

为了托管您的 golang webapp,您应该像对待任何其他编译语言一样进行操作:从经典托管提供商处购买服务器 (VPS) 或使用公共云提供商。

您的另一种选择是使用像 Google 的App Engine这样的托管平台。它需要您部署 golang 源代码,并为您管理其他一切。它可能会为您省去一些 devops 的麻烦。


查看完整回答
反对 回复 2023-06-12
?
函数式编程

TA贡献1807条经验 获得超9个赞

共享主机计划支持 CGI 是很常见的。net /http/cgi包在 go 中提供了对此的支持。只要您使用标准库中的 http 服务器,它只需要对您的 go 程序进行微小的更改。

http.ListenAndServe(":8080", myServeMux)会变成cgi.Serve(myServeMux)。 http.ListenAndServe(":8080", nil)会变成cgi.Serve(nil)

请注意,您不再指定端口,因为该端口现在已在网络服务器上配置。

对此有一些注意事项:

  • 这比内置的 http 服务器慢,因为您的程序必须为每个页面加载从头开始。也就是说,go 启动得非常快。只要您的应用程序在启动时没有一堆事情要做,那就还不错

  • 您不能运行后台线程。您的程序在请求进入时启动,并应在响应发出后立即结束。

  • 内存和 go 通道不能在不同的请求之间共享。


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

添加回答

举报

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