Go web apps如何从服务器角度运行?

Met*_*lis 8 go

我按照有关如何使用Go 创建Web应用程序的说明进行操作,并且我能够使应用程序运行良好.

有一点我很困惑的是,当你运行应用程序(./8.out)时,终端将坐在那里听8080端口,直到有人访问一个页面.

终端是否需要一直保持运行Web应用程序?该应用程序是否像apache一样?是否需要在此应用旁边运行apache?在服务器环境中进行此设置似乎对我来说非常困惑,因为我不明白最好的方法是什么.

编辑
感谢您的回复.因此,如果Go应用程序基本上像apache一样,是否有预制的Go服务器应用程序具有apache的冗长?

Mat*_*ley 8

终端是否需要一直保持运行Web应用程序?

如果你从终端正常运行它,那么是的.更好的选择是在后台运行它,在命令行的末尾添加一个"&"(好的),从init(更好)启动它,或者像监督(最好)一样使用进程监视器.

该应用程序是否像apache一样?

基本上,是的.它侦听HTTP请求并响应它们.

是否需要在此应用旁边运行apache?

不,Go应用程序可以自己处理请求.有些人在前端运行apache或其他服务器(侦听端口80)并使用mod_proxy将请求转发到他们的应用程序(在端口8080或其他端口上侦听).

这样做的一个优点是您可以在自己的进程中运行多个不同的应用程序服务器.例如,您可以将Ruby on Rails用于主站点,并使用Go程序处理API请求.

另一个优点是您的程序不需要以root身份启动来侦听端口80.您可以像普通用户一样运行,而不必担心在打开连接后删除权限.

是否有预制的Go服务器应用程序具有详细的apache?

据我所知,没有与Apache相比较的服务器.Go足够新,以至于它可能会是一段时间.

有一些框架可以使用内置的HTTP服务器更轻松地编写Web应用程序.唯一一个我熟悉的是web.go.