这个问题has been asked before,在简历中我想配置这个场景:
1 - 我有一台带有许多应用程序的Jetty 7服务器,例如:app1,app2,app3等。
2 - 我有一个主域名,每个Jetty应用程序有一个子域名,例如: app1.example.com,app2.example.com,app3.example.com等。
3 - 我尝试使用Apache 2.2.22 mod_proxy来跨Apache管理的域中屏蔽这些Jetty应用程序。这是我的一个应用程序的功能配置:
<VirtualHost *:80>
ServerName example.com
ServerAlias app1.example.com
ProxyRequests Off
ProxyPreserveHost On
<Proxy *:80>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /app1 http://localhost:8080/app1
</VirtualHost>
此配置有效,但是,它不会删除上下文名称,URI为:
有办法删除此上下文名称,留下完全透明的URI吗? e.g:
网络上的所有示例都在URIS上使用此上下文名称:/
其他信息:
提前致谢。
答案 0 :(得分:0)
我找到了解决方案:
1 - 为apache2 mod-proxy-html安装此特定的lib:
sudo apt-get install libapache2-lib-proxy-html
2 - 启用此新模块:
sudo a2enmod proxy_html
3 - 在以下位置配置您的应用程序描述符:
sudo vim /etc/apache2/sites-enabled/app1
有了这个内容:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName app1.example.com
ProxyRequests Off
ProxyPreserveHost On
<Proxy *:80>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/app1
ProxyPassReverse / http://localhost:8080/app1
ProxyHTMLURLMap / /app1/
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
4 - 重启apache2服务:
sudo service apache2 restart
快乐,透明的请求: