Вот краткий обзор процесса хостинга, за которым я следил, чтобы сайт работал с использованием серверного программного обеспечения Haskell.
Получить сервер
Первое, что вам нужно для хостинга, это устройство для запуска серверного кода.
Вы можете арендовать «виртуальный компьютер» у компании.
(виртуальный частный сервер или VPS) или вы можете использовать компьютер, который у вас лежит
о доме.
Виртуальный частный сервер
Выберите поставщика VPS из огромного числа компаний, которые предлагают это
вид обслуживания. Поставщик должен позволить вам установить программное обеспечение на VPS
и прикрепить к нему статический IP-адрес. Я использовал AWS Lightsail и Cloud9
в прошлом.
Как только вы определились с провайдером, вам нужно подписаться на план.
Здесь важно выбрать операционную систему, на которую можно установить стек.
Вы также должны выбрать достаточно оперативной памяти, места для хранения и тактовой частоты, чтобы
стек для работы без проблем.
Когда ваш VPS готов к использованию, подключите к нему статический IP-адрес, а затем
установить стек на него.
Если вы сделали все это, вы можете игнорировать раздел «Домашний сервер» и
прыгайте прямо к «Настройте Happstack»
Домашний сервер
Статический IP (домашняя сеть)
Ваш домашний маршрутизатор назначит фиксированный IP-адрес устройству, которое вы собираетесь использовать
как сервер. Обратите внимание, что это относится только к вашей домашней сети.
Способ заставить эту работу сильно различаться в разных операционных системах.
Вам лучше запустить поиск в сети для шагов, специфичных для вашей ОС.
Переадресация портов
На странице настроек вашего домашнего роутера должен быть раздел «Переадресация портов».
или что-то подобное.
Цель - переадресовать все соединения, сделанные на порт 80 вашего домашнего маршрутизатора, на
порт вашего устройства, на котором вы настроили happstack для прослушивания.
IP-адрес, на который вы хотите перенаправить его, будет фиксированным IP-адресом.
вашего устройства.
Опять же, процесс несколько отличается в зависимости от производителя вашего маршрутизатора.
Вы всегда можете посмотреть шаги для переадресации портов на маршрутизаторе
конкретной марки и модели.
Статический IP (Интернет)
Обратитесь к вашему интернет-провайдеру, чтобы получить фиксированный IP-адрес для вашего
роутер в интернете.
Настроить Happstack
Предположим, вы хотите запустить happstack на порту 81 вашего устройства.
Выполните следующие шаги:
stack new happstack-hosting
Добавить happstack-server
в список зависимостей внутри проекта
файл package.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, следуйте инструкциям вашего регистратора, чтобы перенаправить доменное имя на порт 81 IP-адреса вашего VPS.
В противном случае перенаправить имя домена на порт 80
статического IP-адреса вашего маршрутизатора.