我有一台 centOS 机器,Apache HTTP 服务器在端口 80 上运行,Apache Tomcat 在端口 8080 上运行。一个 PHP 应用程序在 Http Server 上运行,一个基于 java 的应用程序在 tomcat 上运行。
我希望将一个子域映射到 Php 应用程序,并将另一个子域映射到 java 应用程序。
这是我需要的映射。
http://www.a.myDomain.com/ --- php app and
http://www.app.myDomain.com/ ----java pp
为此,我在配置文件中进行了以下更改。
httpd.conf
添加了以下几行,
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
此外,还添加了以下内容
NameVirtualHost *:80
<VirtualHost *:80>
ServerName app.myDomain.com
ServerAlias www.app.myDomain.com
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html/test/
ServerName a.myDomain.com
ServerAlias www.a.myDomain.com
</VirtualHost>
Tomcat - Server.xml
<Host name="www.app.myDomain.com" appBase="/home/centos/apache-tomcat-8.0.0-RC3/webapps/myApp"
unpackWARs="true" autoDeploy="true" xmlValidation="false"
xmlNamespaceAware="false" >
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="" docBase="/home/centos/apache-tomcat-8.0.0-RC3/webapps/myApp"
debug="0" reloadable="false"/>
我已经修改了上面的配置文件,现在我可以使用 URLS 访问这两个应用程序
http://www.a.myDomain.com/
http://www.app.myDomain.com:8080/
这工作正常。
但我想在不指定端口的情况下访问 java 应用程序
即,Java 应用程序应该可以通过
http://www.app.myDomain.com/
instead of http://www.app.myDomain.com:8080/
我已经在 apache conf 中添加了反向代理的代码(请参阅 httpd conf 文件),但它不起作用。当我访问网址时
我收到以下错误
暂停服务
由于维护停机或容量问题,服务器暂时无法满足您的请求。请稍后再试。
Apache配置中的任何错误?