azureでAIPOをセットアップしたのですが、わけあってさくらVPSに移動することになりました。さくらVPSでは別のWEBサービスが稼働中。ということで、apacheを使ってSSLのリバースプロキシーを構築し、AIPOと接続することにしました。
これが意外と苦戦。VirtualHostをSSLベースでLet’s Encryptで作るまではうまくいくのですが(それでもsakuraのドメインではToo Manyエラーが出て取れませんでした)、AIPOとの接続がうまく行きません。
具体的には
AIPOのログイン画面は出る
CSSが読み込めてない
画像が読み込めてない
■ うまくいかない
【接続構成】
apache(SSL:443)※→TOMCAT/AIPO(SSL:8443)※
※Let’s encryptの証明書をapacheとTOMCAT/AIPO(コンバート済)で使用
で、ログインも出来ませんでした。
分からないときには基本に戻り、8443で一旦直接接続を行うべくiptablesを編集します。
結果、問題なし。ちゃんとログイン画面も出て、ログインも出来ます。
何がおこっているのかわからないので、グーグル検索してみると、どうやらSSLでのリバースプロキシーだと同様の問題が発生しているとの書き込みを複数発見。
■ 解決方法
【接続構成】
apache(SSL:443)※→TOMCAT/AIPO(ajp:8009)
※Let’s encryptの証明書をapacheで使用。
httpd.confのバーチャルホストは以下のように書き換えます。
これでうまく動いてくれました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<VirtualHost *:443> ServerName [FQDN] SSLEngine on SSLCertificateFile /etc/letsencrypt/live/[FQDN]/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/[FQDN]/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/[FQDN]/chain.pem DocumentRoot /var/www/html <IfModule mod_proxy.c> ProxyRequests Off # Proxy Mode OFF ProxyPreserveHost On # HTTP-HOSTをHTTP-X-FORWARDED-HOSTに書き換える ProxyPass / ajp://localhost:8009/ retry=1 keepalive=Off ProxyPassReverse / ajp://localhost:8009/ </IfModule> </VirtualHost> |