【问题标题】:How to run multiple Golang apps on a dedicated server? [closed]如何在专用服务器上运行多个 Golang 应用程序? [关闭]
【发布时间】:2017-01-30 13:24:10
【问题描述】:

我是 Go 新手,我一直在试图弄清楚如何在专用服务器上部署我的应用程序。

当我使用 PHP 时,我使用了标准设置:

但我对应该如何部署我的 Go 应用程序感到困惑。

我知道我可以在端口 :80 上运行单个应用程序,但是如何运行多个应用程序?

这是大意吗:

或者我应该使用这样的东西:

谁能澄清大多数 Go 开发人员部署他们的应用程序的方式? 谢谢!

【问题讨论】:

  • 如果您想在端口 80 上使用多个应用程序,那么一个适合您应用程序的网络服务器是一个不错的选择。 Nginx 或 Apache 应该可以轻松处理(我更喜欢 Nginx)

标签: go web-applications server


【解决方案1】:

我强烈建议您选择 Caddy。您可以使用不同端口上的所有应用程序设置服务器(尤其是更高的端口,即 1024 及以上,因此它们不需要是 root),然后使用 proxy 指令将流量转发到您的应用程序等。作为奖励,您还可以获得免费的 Let's Encrypt 证书支持!

https://caddyserver.com/docs/proxy 了解有关 proxy 指令的更多信息

【讨论】:

    【解决方案2】:

    如果您需要多个应用程序来处理 HTTP 请求,您绝对应该考虑使用 Nginx 作为reverse proxy。您可以转发给定路由上的所有请求,例如 /api 到一个服务和 /ui 到第二个服务,前提是它们绑定到不同的端口。

    【讨论】:

    • 此外,通过此设置,Go 程序可以设置为在 Unix-domain socket 上侦听;在 UD 套接字之间传递数据非常快,因为它只是在内存缓冲区之间复制数据(而不是让它通过完整的 TCP 堆栈)。
    【解决方案3】:

    你可能想看看 Traefik (https://traefik.io/),一个基于 Go 的网络代理

    【讨论】:

      猜你喜欢
      • 2014-07-03
      • 1970-01-01
      • 1970-01-01
      • 2011-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多