如何托管Happstack网站?

时间:2018-06-27 14:03:45

标签: haskell web-hosting happstack

我已经使用Happstack建立了一个网站,但是我没有托管经验。我在网上找到的所有内容对于我来说要么过时,要么太复杂。有什么简单的方法或我可以遵循的教程来发布我的Happstack网站吗?

谢谢

2 个答案:

答案 0 :(得分:2)

这是我使用Haskell服务器软件来运行网站的托管过程的简短概述。

获取服务器

托管时,您需要做的第一件事就是运行服务器代码的设备。

您可以从公司租用“虚拟计算机” (虚拟专用服务器或VPS),也可以使用您说谎的计算机 大约在家里。

虚拟专用服务器

从众多提供此服务的公司中选择VPS提供商 一种服务。提供者应允许您在VPS上安装软件 并为其添加一个静态IP地址。我已经使用过AWS Lightsail和Cloud9 以往。

一旦确定了提供者,就需要订阅计划。 在这里重要的是选择一个可以在其上安装堆栈的操作系统。 您还应该选择足够的RAM,存储空间和时钟速度以允许 堆栈可以正常工作。

准备好使用VPS时,请为其添加一个静态IP地址,然后 在上面安装堆栈。

如果您完成了所有这些操作,则可以忽略“本地服务器”部分,然后 直接跳转到“设置Happstack”

家庭服务器

静态IP(家庭网络)

让家用路由器为您要使用的设备分配一个固定的IP 作为服务器。请注意,这仅适用于您的家庭网络。

实现此工作的方式在不同的操作系统中有很大不同。 最好针对特定于操作系统的步骤运行网络搜索。

端口转发

您的家用路由器的设置页面应包含一个名为“端口转发”的部分 或类似的东西。

目标是将到家庭路由器端口80的所有连接转发到 您配置了happstack进行监听的设备的端口。 您要将其转发到的IP地址将是固定IP地址 设备上的

同样,该过程根据路由器的制造商而有很大不同。 您可以随时查找在路由器上执行端口转发的步骤 具体的品牌和型号。

静态IP(互联网)

与您的互联网服务提供商联系以获取您的固定IP地址 互联网上的路由器。

设置Happstack

假设您要在设备的端口81上运行happstack。

执行以下步骤:

  1. stack new happstack-hosting

  2. happstack-server添加到项目内部的依赖项列表中 package.yaml文件。

  3. 在项目的app / Main.hs文件中放置以下代码

    module Main where
    
    import Happstack.Server (nullConf, simpleHTTP, toResponse, ok, port)
    
    main :: IO ()
    main = simpleHTTP (nullConf { port = 81 }) $ ok "Hello, World!"
    
  4. 运行stack build

  5. 运行sudo stack exec happstack-hosting --allow-different-user

当然,一旦您确认可以从互联网访问该网站,就必须用自己的服务器代码替换Main.hs。

使用域名

从注册商处获取域名。我以前曾经使用过Google Domains,Namecheap和GoDaddy,但那里还有很多其他人。

如果您使用的是VPS,请按照注册商的指示将域名重定向到您的VPS IP地址的端口81。

否则将域名重定向到端口80 路由器的静态IP地址。

答案 1 :(得分:0)

感谢所有回答的人。我最终在heroku旁边使用了docker映像进行部署。如果要查看docker文件的外观,请检查https://github.com/hpbl/haskellkoans