我在网上看到很多人提到使用ProxyPreserveHost On
来确保代理后端接收原始调用者的主机名。我正在使用它来加强我的 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。
您的帮助将不胜感激。