首先,请原谅我的英语不好。我有一个疑问,我是否可以安装一个带有域名为“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但这需要比简单的问答更进一步的解释。