我已经使用Happstack建立了一个网站,但我没有托管经验。我在网上找到的所有东西对我来说要么已经过时,要么太复杂了。有没有一种简单的方法或教程可以按照我来发布我的 Happstack 网站?
谢谢
以下是我使用 Haskell 服务器软件运行网站的托管过程的简短概述。
获取服务器
托管时需要的第一件事是运行服务器代码的设备。
您可以从公司租用"虚拟计算机" (虚拟专用服务器或VPS(或者您可以使用您躺着的电脑 大约在家里。
虚拟专用服务器
从提供此服务的众多公司中选择VPS提供商 一种服务。提供商应允许您在VPS上安装软件 并为其附加静态 IP 地址。 我使用过 AWS Lightsail 和 Cloud9 过去。
一旦您决定了提供商,您需要订阅一个计划。 这里重要的是选择一个可以安装堆栈的操作系统。 您还应该选择足够的 RAM、存储空间和时钟速度以允许 堆叠工作没有问题。
当您的VPS准备好使用时,将静态IP地址附加到它,然后 在其上安装堆栈。
如果您完成了所有这些操作,则可以忽略"家庭服务器"部分,并且 直接跳转到"设置Happstack">
主服务器
静态 IP(家庭网络(
让您的家庭路由器为您打算使用的设备分配一个固定 IP 作为服务器。请注意,这仅适用于您的家庭网络。
完成这项工作的方法因操作系统而异。 您最好运行 Web 搜索以查找特定于您的操作系统的步骤。
端口转发
您的家庭路由器的设置页面应该有一个名为"端口转发"的部分 或类似的东西。
目标是将连接到家庭路由器端口 80 的所有连接转发到 已将 Happstack 配置为侦听的设备端口。 您要将其转发到的 IP 地址将是固定 IP 地址 您的设备。
同样,该过程因路由器制造商而异。 您始终可以查找在路由器上执行端口转发的步骤 特定品牌和型号。
静态 IP (互联网(
请联系您的互联网服务提供商以获取您的固定 IP 地址 互联网上的路由器。
设置 Happstack
假设您要在设备的端口 81 上运行 happstack。
执行以下步骤:
-
stack new happstack-hosting
-
将
happstack-server
添加到项目内的依赖项列表中 包.yaml 文件。 -
将以下代码放入项目的 app/Main.hs 文件中
module Main where import Happstack.Server (nullConf, simpleHTTP, toResponse, ok, port) main :: IO () main = simpleHTTP (nullConf { port = 81 }) $ ok "Hello, World!"
-
运行
stack build
-
运行
sudo stack exec happstack-hosting --allow-different-user
当然,一旦您确认可以从互联网访问该网站,您必须用您自己的服务器代码替换此 Main.hs。
使用域名
从注册商处获取域名。我以前使用过Google Domains,Namecheap和GoDaddy,但还有很多其他的。
如果您使用的是VPS,请按照注册商的说明将域名重定向到VPSIP地址的端口81。
否则将域名重定向到端口 80 路由器的静态 IP 地址。
感谢所有回答的人。我最终使用了一个 docker 镜像和 heroku 进行部署。如果您想查看 docker 文件的外观,请检查 https://github.com/hpbl/haskellkoans