如何在同一台服务器上运行 Wordpress 网站和 Tomcat Web 应用程序

如何在同一台服务器上运行 Wordpress 网站和 Tomcat Web 应用程序

我正在构建一个解决方案,其中网站的 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 文件。

http://bonfab.io/jwordpress/

答案3

接受@lain 的指导通过做一些事情,我最终解决了这个问题。

  1. 在本例中,重命名了我的 tomcat 中的 WAR 文件私人页面
  2. 在我的虚拟主机定义中,我更改了 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> 

相关内容