Pound2.3.2 をインストールしたら、前と設定の仕方が若干変わっていた。
昔は、ListehHTTPとListenHTTPSの中にそれぞれ Service を書けば動いたんだけど。公式サイトみたら、若干変わってたような感じがした。
以下の様に、まずListenHTTPSとListenHTTPを書く。その後にServiceを書き始める。SSLの判別はアプリ側でやったほうがよさげ。
ListenHTTPS
Address 192.168.1.1
Port 443
Cert "/usr/local/etc/example.pem"
AddHeader "X-Forwarded-Proto: https"
HeadRemove "X-Forwarded-Proto"
End
ListenHTTP
Address 192.168.1.1
Port 80
xHTTP 2
End
Service
HeadRequire "Host: test.com"
BackEnd
Address 127.0.0.1
Port 8200
End
End
ネットでPoundはヘッダの情報を書き換えないって書いてあったけど、下記のように書かないと通信がhttpsで来たという情報がバックエンドに伝わってこない。
AddHeader "X-Forwarded-Proto: https" HeadRemove "X-Forwarded-Proto"
これを書かないと、 request.ssl? が false になってしまう。ssl_required をかけてるとリダイレクトがループしてとても困る。