具有域和子域的Apache虚拟主机

具有域和子域的Apache虚拟主机,apache,virtualhost,tomcat8,Apache,Virtualhost,Tomcat8,有人能告诉我我做错了什么吗? 在一个同时具有httpd和tomcat8的服务器实例上,我需要托管2个站点,如下所示: http://localhost:8888/ - should be accessed as www.example.com http://localhost:8080/webapp1 - should be accessed as webapp1.example.com 我在httpd.conf中尝试过VirtualHost,但只有www.example.com起作用

有人能告诉我我做错了什么吗? 在一个同时具有httpd和tomcat8的服务器实例上,我需要托管2个站点,如下所示:

http://localhost:8888/ - should be accessed as www.example.com   
http://localhost:8080/webapp1 - should be accessed as webapp1.example.com
我在httpd.conf中尝试过VirtualHost,但只有www.example.com起作用

<VirtualHost *:80> 
  ProxyPreserveHost On
  ProxyRequests Off
  ServerName www.example.com
  ServerAlias example.com
  ProxyPass / http://localhost:8888/
  ProxyPassReverse / http://localhost:8888/
</VirtualHost>

<VirtualHost *:80>
  ServerName webapp1.example.com
  ProxyPass / http://localhost:8080/webapp1/
  ProxyPassReverse / http://localhost.com:8080/webapp1/
  <Proxy *>
        Order deny,allow
        Allow from all
  </Proxy>
</VirtualHost>

代理主机
代理请求关闭
服务器名www.example.com
ServerAlias example.com
ProxyPass/http://localhost:8888/
ProxyPassReverse/http://localhost:8888/
ServerName webapp1.example.com
ProxyPass/http://localhost:8080/webapp1/
ProxyPassReverse/http://localhost.com:8080/webapp1/
命令拒绝,允许
通融

使用“httpd-S”验证虚拟配置语法,如下所示。当所有设置都正确时,它只显示“Syntax OK”

# /usr/local/apache2/bin/httpd -S
VirtualHost configuration:
Syntax OK
欲了解更多信息,请参阅此处-

我希望您已经在主机文件(C:\WINDOWS\System32\drivers\etc\hosts)中添加了带有本地主机地址的服务器名称。 这样地
127.0.0.1 example.com


请分享您找到的解决方案。

听起来像是webapp1子域的DNS CNAME设置问题。@smozgur感谢您的回复。我的example.com(@)和webapp1(CNAME)都指向同一个服务器IP。很抱歉,我正在尝试确定,因为DNS需要一些时间来解析,这经常让我发疯。您在过去15-20分钟内没有进行CNAME设置,对吗?此外,我经常需要更改浏览器以检查我新输入的子域,因为浏览器缓存坚持从cache.btw显示,CNAME应该指向@,而不是IP地址。我知道这可能也不是问题,但值得一提。嗯,8080和8888都配置正确吗?我知道回答这些问题很烦人,但我正在努力找出问题所在。事实上,我从未使用过ProxyPass,但它不应该影响httpd侦听端口的方式。