gpt4 book ai didi

haskell - 如何运行已部署的 Haskell Web 应用程序

转载 作者:行者123 更新时间:2023-12-04 04:07:16 26 4
gpt4 key购买 nike

我已经阅读了我可以在这里找到的每个 Haskell 部署线程以及在更广泛的网络上找到的几个,但我仍然没有得到任何东西。如果我为我的服务器编译了一个应用程序,并且可以 ssh 进入并运行它,我该如何运行它?假设我使用的是 HTTP 接口(interface)(不是 FastCGI)。

例如,使用 node.js,我们使用集群让应用程序在多个处理器内核上启动,然后为 centOS 创建一个 init.d 脚本来运行、守护进程、拥有一个 pid 文件等。

我如何为 Haskell 应用程序执行此操作?

最佳答案

由于您没有提及您正在使用哪个框架,所以我将笼统地回答这个问题。

使用 Haskell,您不必启动 Web 应用程序的多个实例(在集群中),因为如果应用程序支持并发,它通常在内部使用多个线程。相反,您想要做的是确保应用程序是使用 -threaded 编译的。和 -rtsopts标志。然后,当您运行应用程序时,您传递标志 +RTS -N<number of simultaneous threads> .例如,如果您在配备英特尔® 超线程技术的 8 核计算机上使用端口 1234 上运行的 Snap Web 应用程序,您可以使用 my-server -p 1234 +RTS -N16 启动它。让它并行化到多达 16 个操作系统线程。

要守护 Web 应用程序,您可以使用与 node.js 相同的过程。您创建了一个 init 脚本,以各种 UNIX 运行模式启动可执行文件,而 Bob 是您的叔叔。

与任何其他 Web 应用程序一样,您可能希望使用将流量重定向到您的 Web 应用程序的前端服务器(这就是您可能不想为您的 Web 应用程序使用端口 80 的原因)。有关如何执行此操作的详细信息,请访问 the Web/Deploy page on HaskellWiki .

关于haskell - 如何运行已部署的 Haskell Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8827413/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com