多个具有相同服务器名称的虚拟主机

我有一个Apache服务器,一个独特的域名和多个tomcat实例,这里是我的实际configuration:

<VirtualHost *:80> ServerName my.domain.com ... ProxyPass /sample_1 ajp://127.0.0.1:8009/sample_1 ProxyPass /sample_2 ajp://127.0.0.1:8009/sample_2 ProxyPass /sample_3 ajp://127.0.0.1:8014/sample_3 ProxyPass /sample_4 ajp://127.0.0.1:8019/sample_4 .... CustomLog logs/my_access_log combined ErrorLog logs/my_error_log </VirtualHost> 

现在,我想为每个Tomcat实例使用一个CustomLog,我试图把每个ProxyPass指令放在一个单独的虚拟主机中,但是根据httpd -S输出,除了虚拟主机在顶部之外,我得到了403个错误。

我不喜欢删除ServerName指令,因为服务将通过IP地址可用。

请帮助

您可以使用SetEnvIf指令和条件日志logging将特定的请求logging到不同的日志文件。

 <VirtualHost *:80> ServerName my.example.com ... SetEnvIf Request_URI "/sample_1.*" sample_1 SetEnvIf Request_URI "/sample_2.*" sample_2 CustomLog logs/my_access_log_sample_1 combined env=sample_1 CustomLog logs/my_access_log_sample_2 combined env=sample_2 CustomLog logs/my_access_log combined ErrorLog logs/my_error_log </VirtualHost>