Apache下的子域代理到Tomcat
Posted
技术标签:
【中文标题】Apache下的子域代理到Tomcat【英文标题】:Subdomain under Apache to proxy into Tomcat 【发布时间】:2011-02-06 05:06:43 【问题描述】:在使用 AJP 代理到 Tomcat 时,我无法为我的 Windows 计算机创建子域。这是我的 httpd.conf 文件中的内容:
<VirtualHost *:80>
ServerName subdomain.localhost
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / ajp://localhost:8009/folder/
ProxyPassReverse / ajp://localhost:8009/folder/
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
子域已添加到`c:\windows\system32\drivers\etc\hosts
127.0.0.1 本地主机 127.0.0.1 subdomain.localhost
当我去http://localhost
时,我直接去代理。当我去http://subdomain.localhost
时,我也会去代理。我该怎么做才能让子域只去代理,而常规去Apache?
【问题讨论】:
【参考方案1】:您需要使用 localhost 作为 ServerName 声明第二个 VirtualHost。
【讨论】:
每天学习新东西 :) 你能发一个例子来说明第二个 VirtualHost 应该是什么样子吗? 与问题中的相同,但使用 ServerName localhost 而不是 ServerName subdomain.localhost【参考方案2】:这可能应该移至 superuser.com,但要尝试一件事:
<VirtualHost *:80
> 通知它接受端口 80 上的所有传入连接以使用这些设置。我会尝试将其更改为:
<VirtualHost subdomain.localhost:80>
并查看是否仅在使用子域时应用这些设置。
您在子域中放置的 ServerName 标记并没有告诉它要听谁。官方文档指出:
ServerName 指令设置 服务器使用的主机名和端口 来识别自己。这用于 创建重定向 URL。为了 例如,如果机器的名称 托管 Web 服务器是 simple.example.com,但机器 还有 DNS 别名 www.example.com 你希望网络服务器是这样的 确定,以下指令 应该使用:
您可以阅读有关这些配置的更多信息here。
【讨论】:
我之前尝试过 subdomin.localhost ,它仍然从 localhost 直接进入 tomcat。感谢您的回复和指向 superuser.com 的链接,从今天开始,我将尝试在各个站点之间区分我的问题。以上是关于Apache下的子域代理到Tomcat的主要内容,如果未能解决你的问题,请参考以下文章
在 apache 2.2.3 上设置通配符子域(带有反向代理)