栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

运行 Go Web 应用程序的堆栈/配置是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

运行 Go Web 应用程序的堆栈/配置是什么?

Go 程序可以监听 80 端口并直接为 HTTP 请求提供服务。相反,您可能希望在 Go 程序前使用反向代理,以便它侦听端口 80 并在端口(例如 4000)上连接到您的程序。执行后者的原因有很多:不必运行您的 Go 程序作为 root,在同一主机上为其他网站/服务提供服务、SSL 终止、负载平衡、日志记录等。

我在前面使用HAProxy。任何反向代理都可以工作。Nginx 也是一个不错的选择(比 HAProxy 更受欢迎并且能够做更多的事情)。

如果您阅读其文档(HTML 版本),则 HAProxy 非常容易配置。我

haproxy.cfg
的一个 Go 项目的整个文件如下,以防您需要一个起点。

global        log     127.0.0.1       local0        maxconn 10000        user    haproxy        group   haproxy        daemondefaults        log     global        mode    http        option  httplog        option  dontlognull        retries 3        timeout connect 5000        timeout client  50000        timeout server  50000frontend http        bind :80        acl  is_stats  hdr(host)       -i      hastats.myapp.com        use_backend    stats   if      is_stats        default_backend        myapp        capture        request header Host     len     20        capture        request header Referer  len     50backend myapp        server  main    127.0.0.1:4000backend stats       mode     http       stats    enable       stats    scope   http       stats    scope   myapp       stats    realm   Haproxy Statistics       stats    uri     /       stats    auth    username:password

Nginx 更简单。

关于服务控制,我将 Go 程序作为系统服务运行。我想每个人都这样做。我的服务器运行 Ubuntu,所以它使用 Upstart。我已经把这个放在

/etc/init/myapp.conf
Upstart 来控制我的程序:

start on runlevel [2345]stop on runlevel [!2345]chdir /home/myapp/myappsetgid myappsetuid myappexec ./myapp start 1>>_logs/stdout.log 2>>_logs/stderr.log

另一方面是部署。一种选择是仅通过发送程序和必要资产的二进制文件来部署。这是一个非常好的解决方案 IMO。我使用另一个选项:在服务器上编译。(当我设置所谓的“持续集成/部署”系统时,我将切换到使用二进制文件进行部署。)

我在服务器上有一个小的 shell 脚本,它从远程 Git 存储库中为我的项目提取代码,使用 Go 构建它,将二进制文件和其他资产复制到

~/myapp/
,然后重新启动服务。

总的来说,整个事情与任何其他服务器设置没有太大区别:您必须有一种方法来运行您的代码并让它为 HTTP 请求提供服务。在实践中,Go 已被证明对这些东西非常稳定。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/649016.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号