ProxyPreserveHost On
プロキシされたバックエンドが元の呼び出し元のホスト名を確実に受け取るようにするために を使用することについて言及している Web 上の多くの記事を目にします。Web アプリケーション (Java、Tomcat) のセキュリティを強化するためにこれを使用していますが、ユーザーが実際にどこにいるのかをログに示すこともできれば便利です。私のTomcatログは今これを示しています – かなり役に立たない:
127.0.0.1 - - [17/Mar/2013:06:32:13 +0100] "GET /webapp/frontend/app/partials/welcome.html HTTP/1.1" 200 54
これは明らかに期待どおりに機能しない私の構成です。
「/etc/apache2/sites-enabled/000-default」
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass /webapp http://localhost:8080/webapp
ProxyPassReverse /webapp http://localhost:8080/webapp
RewriteEngine On
RewriteRule ^/$ /webapp/frontend/app/ [proxy]
RewriteRule ^/webapp/$ /webapp/frontend/app/ [redirect]
RewriteRule ^/webapp/app/$ /webapp/frontend/app/ [redirect]
(ここからは にあったデフォルトのもの000-default
)
有効なモジュール:
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod rewrite
これは、Apache HTTPD 2.2.22 を実行する Ubuntu 12.10 です。
どうぞよろしくお願いいたします。