Uli*_*ler 6 haskell haskell-warp
出于安全原因,我localhost只想听,使用反向代理处理远程访问.
如何调用run仅侦听特定主机/ IP?
注意:这个问题故意没有研究,因为它回答了Q&A-Style.
当前接受的答案因管道和/或翘曲的变化而被打破.Warp不再导出Host构造函数.但是你不需要它,因为该HostPreference类型支持OverloadedStrings扩展,所以你可以直接使用一个字符串.
此示例还通过切换到setPort和来消除了弃用警告setHost.
{-# LANGUAGE OverloadedStrings #-}
import Network.Wai (responseLBS)
import Network.Wai.Handler.Warp
import Network.HTTP.Types (status200)
import Network.HTTP.Types.Header (hContentType)
main = do
let port = 3000
putStrLn $ "Listening on port " ++ show port
let settings = setPort port $ setHost "127.0.0.1" defaultSettings
runSettings settings app
app req = return $
responseLBS status200 [(hContentType, "text/plain")] "Hello world!"
Run Code Online (Sandbox Code Playgroud)