我编写了一个名为myapp
的Yesod Web应用程序,并将其编译(使用stack build
)到myapp-exe
。现在我想部署它,但我不想使用Keter / scaffolding。 warp
过程允许我指定要侦听的端口,但不能指定IP。有没有办法让编译后的可执行文件myapp-exe
只能在127.0.0.1上监听?
答案 0 :(得分:1)
Warp提供了一个名为setHost的函数:
您尚未展示如何运行应用,但我猜您需要从run设置切换到runSettings。
答案 1 :(得分:0)
好吧,我应该在回答之前再研究一下。答案是使用runSettings
中的Network.Wai.Handler.Warp
而不是简单warp
:
let stts = setPort 12345 $ setHost "127.0.0.1" defaultSettings
runStderrLoggingT $ withSqlitePool dbfile 10 $ \pool -> liftIO $ do
waiApp <- toWaiApp $ MyApp pool
runSettings stts waiApp
这允许更多设置,而warp
只是一个便利包装。