请原谅我对这个话题的无知。我读了又读,搜索了又搜索,但我仍然在为我的设置而苦苦挣扎。
我正在尝试设置我的 httpd.conf 以允许一个域,并使用两个目录解析为两个不同的 tomcat 实例。
www.example.com/first
<VirtualHost "ip address":80>
ServerName example/first
ErrorLog /var/log/httpd/first_error.log
CustomLog /var/log/httpd/first_access.log combined
<Proxy *>
AddDefaultCharset off
Order deny,allow
Allow from all
</Proxy>
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
</VirtualHost>
www.example.com/second
<VirtualHost "ip address":80>
ServerName example/second
ErrorLog /var/log/httpd/second_error.log
CustomLog /var/log/httpd/second_access.log combined
<Proxy *>
AddDefaultCharset off
Order deny,allow
Allow from all
</Proxy>
ProxyPass / ajp://localhost:8010/
ProxyPassReverse / ajp://localhost:8010/
</VirtualHost>
我知道这是错的,我想我应该使用<Directory>
,或者我应该在中指定 tomcat 实例:
ProxyPass /example1 ajp://localhost:8010/
ProxyPass /example2 ajp://localhost:8009/
请派人来帮忙。物资/士气低落。
或示例链接...谢谢!!
答案1
对于您的第一个拆分 URI 代理,我建议您避免使用<Location>
和<Directory>
。目录映射到实际文件系统目录,而位置则映射到 URI 路径。后者是您想要实现的,但您实际上不需要容器来实现这一点。(它只是使配置更简洁)
使用单个<VirtualHost>
,带有ProxyPass /first ajp://localhost:8009
和ProxyPass /second ajp://localhost:8010
。我可以为您提供完整的配置,但我希望您再努力一点。如果您解决了上述困惑,那么您就非常接近完成了。
答案2
解决了。
<VirtualHost "ip address":80>
ServerName example.com
ErrorLog /var/log/httpd/error.log
CustomLog /var/log/httpd/access.log combined
ProxyPass /first/ ajp://localhost:8009/first/
ProxyPass /second/ ajp://localhost:8010/second/
</VirtualHost>