更新感谢比尔和crb的答案,我相信我有它的工作。
xxx@host:/etc/apache2/sites-available$ apache2ctl -S VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: *:80 is a NameVirtualHost default server default (/etc/apache2/sites-enabled/000-default:4) port 80 namevhost default (/etc/apache2/sites-enabled/000-default:4) port 80 namevhost www.123acme.com (/etc/apache2/sites-enabled/www.123acme.com:4) Syntax OK
现在www.123acme.com将从/ var / wwwparsing到由Apache服务的正确的VirtualHost,而其他所有如果代理到Jetty。
我在端口80上有一个Apache2实例,在8080上运行一个Jetty应用服务器。我希望Apache实例服务于一个VirtualHost,让我们说www.acme.com,并发送所有其他stream量到Jetty实例。
到目前为止,我有网站,其中包含可用/docker
ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://localhost:8080/ ProxyPreserveHost On ProxyStatus On
目标是首先获得一切代理到docker。 目前为止这似乎工作正常。
那么从这个angular度来看,我将如何configuration各种不被代理的VirtualHost ?
只是重申一下:
– 打开www.acme.com应该解决传统的虚拟主机坐在/ var / www和Apache2服务从站点启用/ acme.com的configuration
– 其他任何东西都应该转发到在8080上运行的Jetty实例
文件中的第一个虚拟主机(或包含的虚拟主机)是默认的,并且是它将会到达的地方。 因此,只要使第一个虚拟主机成为代理,那么第二个就是www.acme.com 。
如果您没有VirtualHost定义匹配(基于ServerName / ServerAlias),则Apache将为您的请求提供第一个VirtualHost。 (请参阅文档 )。
设置一个名称为“000-first”的虚拟主机,并将ProxyPassconfiguration置于其中。 它们包含在目录sorting顺序中。
我会通过创build两个VirtualNost来解决这个问题。
第一个VirtualHost(默认的)将包含ProxyPass设置。 根据你的文件名,看起来好像你在运行Debian或者Ubuntu? 在这种情况下,我们正在讨论/ etc / apache2 / sites-enabled / 000-default(又名:/ etc / apache2 / sites-available / default)。
然后第二个VirtualHost将明确指定www.acme.com作为其ServerName,并提供/ var / www的内容。