【发布时间】:2016-07-18 05:31:53
【问题描述】:
我们正在尝试在 apache 2.2.22 和 tomcat-7 之间进行反向代理。我的 httpd.conf 文件中的全部内容如下:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /apps/httpd-2.2.22/docroot/app1/
ServerName app1.mycompany.com
ErrorLog logs/app1.mycompany.com.error_log
CustomLog logs/app1.mycompany.com.access_log common
......
.........
</VirtualHost *.80>
<VirtualHost *:80>
DocumentRoot /apps/httpd-2.2.22/docroot/app2/
ServerName app2.mycompany.com
ErrorLog logs/app2.mycompany.com.error_log
CustomLog logs/app2.mycompany.com.access_log common
....
......
</VirtualHost *.80>
由于我仍在等待获取 SSL 证书,现在只想检查 HTTP 请求。我只是在浏览器中提供 IP 以检查一切是否正常。
来自浏览器的两个应用程序的请求都登陆第一个虚拟主机。
http://1.2.3.4/app1 (Gives me the correct site)
http://1.2.3.4/app2 (Gives me wrong, as docroot it reads is of 1st host)
如果我删除 app1 虚拟主机条目,那么 http://1.2.3.4/app2 可以正常工作。
我们已经在旧服务器上运行了相同的设置,所以我没有将 URL 提供为 http://app1.mycompany.com/app1(通过提供服务器名称而不是 IP)。一旦我们设置好这个服务器并运行良好,我们就需要更换它。
当我在浏览器中提供旧服务器的 IP 时,应用程序运行良好。为什么这台服务器失败了?我需要一些额外的设置吗?
ServerName 如何映射?
忘了说 app1 和 app2 运行在 Tomcat 服务器上,它们位于机器 A 上,而 apache 网络服务器在机器上B。我需要为此做一些配置吗? worker.properties 中已经有 tomcat 服务器的详细信息。
【问题讨论】:
标签: apache reverse-proxy virtual-hosts