これは私の scotty アプリです。リクエストをコンソールに記録する方法に注目してください。
{-# LANGUAGE OverloadedStrings #-}
import Web.Scotty
import Network.Wai.Middleware.RequestLogger
import Data.Monoid (mconcat)
main = scotty 3000 $ do
--log requests to console
middleware logStdoutDev
get "/:word" $ do
beam <- param "word"
html $ mconcat ["<h1>Scotty, ", beam, " me up!</h1>"]
私の scotty アプリは、プロキシ メカニズムを使用して nginx の背後で実行されます。これにより、scotty アプリは次のようにログに記録します。
127.0.0.1 - - [27/Aug/2014:15:12:00 +0000] "GET / HTTP/1.0" 200 - ...
REAL IP ADDRESSをログに記録したい。
Node.js/Express アプリで同じ問題が発生し、次のように解決しました。
Express.js: リモート クライアント アドレスを取得する方法
Scotty でこの問題を解決するにはどうすればよいですか?