Apache 和 tomcat 位于同一主机中

Apache 和 tomcat 位于同一主机中

首先,请原谅我的英语不好。我有一个疑问,我是否可以安装一个带有域名为“domain1.es”的 wordpress 的 LAMP,同时在同一台主机中安装一个运行域名为“domain2.es”的 servlet 的 tomcat?

现在,我有此安装,但存在冲突。我的 tomcat 在“domain2.es:8080”,而我的 wordpress 在“domain1.es”。当我进入没有端口 8080 的“domain2.es”时,由于 DNS 的原因,它会显示 wordpress。

我该如何解决这个问题?

谢谢。

答案1

您需要在 Apache httpd 中配置两个虚拟主机条目,一个用于您现有的 WordPress 网站(可能已经存在),另一个用于 Tomcat 域。

您可以配置一个简单的重定向,它将引导所有从 URL 中省略端口 8080 的访问者尝试连接到正确的端口:

<VirtualHost *:80>
    ServerName  www.example.es
    ServerAlias example.es
    ... 
</VirtualHost>
<VirtualHost *:80>
    ServerName  www.example.com
    ServerAlias example.com
    # Redirect the visitor to the correct port. 
    # The URL in the visitors browsers will change

    Redirect / http://www.example.com:8080/

</VirtualHost>

或者配置 Apache 将请求反向代理到 Tomcat:

<VirtualHost *:80>
    ServerName  www.example.com
    ServerAlias example.com

    # Reverse Proxy the requests to port 8080. 
    # The URL in the visitors browsers will NOT change 
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
</VirtualHost>

由于 URL 不再包含非标准端口,因此看起来更好,但仍有几个缺点。(例如,Tomcat 将不再检测访问者的 IP 地址,所有请求都将显示为来自您自己的 IP。)

一个更好的选择是配置 AJP 协议和 mod_jk但这需要比简单的问答更进一步的解释。

相关内容