返回顶部
首页 > 资讯 > 后端开发 > GO >在私有的IIS 服务器上能否托管 Golang REST Web 应用程序?
  • 294
分享到

在私有的IIS 服务器上能否托管 Golang REST Web 应用程序?

2024-04-04 23:04:45 294人浏览 独家记忆
摘要

golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《在私有的IIS 服务器上能否托管 Golang REST WEB 应用程序?》带大家来

golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《在私有的IIS 服务器上能否托管 Golang REST WEB 应用程序?》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发


问题内容

我想使用 GoLang 创建一个在 IIS(7、8 或 10)或 Tomcat 7.0 上运行的 Web 服务。我们有多个环境,每个环境都有多个服务器,都是 windows 2008 R2、2012 或 2016。所有服务器都是私有的 (10.x)。我的目标是向同时使用 IIS 和 Tomcat 的 COTS 产品添加一些 REST 服务。我宁愿避免将 Nginx 或其他东西粘贴到任一服务器上,以免损害 COTS 产品或让他们的技术支持人员不接听电话。再次强调......服务器只能通过公司 VPN 访问,并且不面向公共互联网

哪种服务器可以提供最简单的方法来让某些东西正常工作 - Tomcat 还是 IIS?


解决方案


这与 Go 无关,但我能想到至少有两种解决方案:

  • Http 请求的反向代理。

    1. 编写一个普通的 Go 服务器,通过 HTTP 处理请求。

      也许可以使用 golang.org/x/sys/windows/svc 将其转换为正确的 Windows 服务。

    2. 部署它。

      如果要托管在运行 IIS 的同一台计算机上,则可以让它仅侦听 localhost。请注意,它需要一个专用的 tcp 端口来侦听,并且您需要使您的服务器能够在这方面以某种方式进行配置。

    3. 设置 reverse proxying in your IIS,以便它将来自您想要的任何网址(部分)的请求转发到 Go 服务器。
  • 使用 FastCGI。

    Go 支持通过 FastCGI 处理请求 协议by means of its standard library, 和IIS suports FastCGI workers。

    因此可以(重新)编写 Go 服务器以使用 FastCGI 而不是 HTTP,然后通过此协议将其挂接到 IIS。

在我看来,这些解决方案的优点和缺点是:

  • 开发人员更熟悉通过纯 HTTP 提供服务,并且 使服务器更加“便携”——从某种意义上说,如果/当您需要它时,将更容易更改其部署方案。 直接将其提供给互联网的权利。

    相反,使用 FastCGI,您始终需要一个 FastCGI 主机作为“中间件”。

  • 有传言称 HTTP 代码在方面进行了更精细的调整 性能优于 FastCGI。

    不过,这只会对相当硬核的负载造成影响。

  • FastCGI over HTTP 的一个可能的优点是它可以 通过管道而不是 TCP 提供服务。例如,您可能 通过命名管道提供服务,因为它受 IIS 的 FastCGI 模块支持,并且存在 3rd-party packages for Go implementing support for them (甚至包括来自 Microsoft® 的一项)。

    这样做的好处是,管道被认为会产生较少的数据传输开销(基本上,它只是在属于两个进程的内核缓冲区之间铲入字节,而不是将它们推送到整个 TCP/IP 堆栈),并且使用管道使您无需将 TCP 端口专用于 Go 服务器。

    不过,我对这种设置及其性能权衡没有个人经验。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《在私有的IIS 服务器上能否托管 Golang REST Web 应用程序?》文章吧,也可关注编程网公众号了解相关技术文章。

您可能感兴趣的文档:

--结束END--

本文标题: 在私有的IIS 服务器上能否托管 Golang REST Web 应用程序?

本文链接: https://lsjlt.com/news/595817.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作