我正在构建一个解决方案,其中网站的 CMS 部分(即关于我们、联系方式等)将在 Wordpress 上运行,而私人页面将是基于 Java-Servlet 的堆栈,在 Tomcat 7 上运行。
至少目前,由于预算原因,这两个“应用程序”必须在同一台服务器上运行。
我想知道如何实现这一点(通过配置、设置等)?这样,每当用户访问公共页面时,他们都会从 Wordpress 获得内容,但对于私人页面(这里我假设会有一个 URL 模式来区分这一点),它将由 Tomcat 提供
我假设我将使用 Apache 作为处理 wordpress 请求的服务器。它也是 Ubuntu 12.04 服务器。
答案1
我认为您正在寻找的技术是反向代理。配置您的 tomcat 以监听 8080,并让 apache 充当它的代理,使用mod_proxy_ajp或类似的东西。
答案2
我最近把所有栎属(PHP5 java 实现)使用最新的 wordpress 构建单个 WAR 文件。
答案3
接受@lain 的指导通过做一些事情,我最终解决了这个问题。
- 在本例中,重命名了我的 tomcat 中的 WAR 文件私人页面
- 在我的虚拟主机定义中,我更改了 ajp:// 以反映上述更改。
这是虚拟主机文件,
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName localhost:443
DocumentRoot /var/www
<Directory /var/www>
#For Wordpress
Options FollowSymLinks
AllowOverride All
</Directory>
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost On
ProxyRequests Off
ProxyPass /private-pages ajp://localhost:8009/private-pages
ProxyPassReverse /private-pages ajp://localhost:8009/private-pages
<Location /private-pages>
Order allow,deny
Allow from all
</Location>
SSLEngine on
SSLProxyEngine On
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>