gpt4 book ai didi

基于主机名的 Apache HTTP 代理

转载 作者:行者123 更新时间:2023-11-28 21:46:37 25 4
gpt4 key购买 nike

以前,我正确设置了 Apache HTTP 以将端口 80 上的传入 HTTP 请求转发到在端口 8080 上运行的 Tomcat 实例。但是,现在我处于这样一种情况,我需要能够代理端口上的传入请求80 到 Tomcat @ 8080 或不同的进程 @ 9000,具体取决于主机名。下面是我尝试设置 Apache 配置以处理这种情况的片段:

<VirtualHost *:80>
ServerName hostname1
ProxyPreserveHost On
ProxyPass / http://hostname1:8080/
ProxyPassReverse / http://hostname1:8080/
</VirtualHost>
<VirtualHost *:80>
ServerName hostname2
ProxyPreserveHost On
ProxyPass / http://hostname2:9000/
ProxyPassReverse / http://hostname2:9000/
</VirtualHost>

现在当从 hostname1hostname2 请求时,我立即得到 500 显然是因为 mod_proxy 没有找到任何匹配的规则来代理请求:

[Fri Feb 08 06:41:01 2013] [warn] proxy: No protocol handler was valid for the URL /. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.

请注意,Tomcat 没有接收传入的请求,因此没有日志输出

为了理智起见,我检查了我确实可以在各自的端口分别访问这两个资源,即我可以使用 hostname1:8080 和 访问 hostname1 hostname2 使用 hostname2:9000。

这里是否缺少帮助我正确配置的东西?

此外,是否有更好的方法以更理智的方式管理它?

感谢您的帮助!

最佳答案

答案似乎是关于一个单独模块的错误配置,即 mod_proxy_http。正如 Apache HTTP 错误日志中的“代理:没有协议(protocol)处理程序对 URL 有效”消息所提示的:https://serverfault.com/questions/242650/setting-up-a-basic-mod-proxy-virtual-host

关于基于主机名的 Apache HTTP 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14775248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com