在现有站点上使用 Tomcat 部署 Grails 应用程序

Posted

技术标签:

【中文标题】在现有站点上使用 Tomcat 部署 Grails 应用程序【英文标题】:Deploying a Grails app with Tomcat on an existing site 【发布时间】:2015-11-03 19:50:00 【问题描述】:

我正在尝试使用带有虚拟主机的 Tomcat 在现有站点 (mysite.org) 上部署 grails 应用程序,并且有人告诉我,我还需要对所选端口使用 ProxyPass 和 ProxyPathReverse。我已成功设置 Tomcat,将 WAR 文件添加到 tomcat/default-root 文件夹,并编辑 server.xml 文件以包含此文件,这是为应用程序提供内容的排除项。

<VirtualHost *:*>
ProxyPreserveHost On



ProxyTimeout 3600
Timeout 3600 

ProxyPass /interventions !

ProxyPass / http://00.00.000.000:8080/
ProxyPassReverse / http://00.00.000.000:8080/

ServerName interventions.mysite.org

</VirtualHost>

我不确定从这里去哪里,我想要的是能够访问interventions.mysite.org 并使用这个应用程序。我知道我需要正确配置虚拟主机,但我迷失在那些似乎专注于从一开始就设置它而不是与现有站点集成的指南中,这让我担心在没有意识到的情况下进行任何更改(鉴于我现在缺乏知识)。

我的下一步应该是什么,有什么我应该寻找的资源(或者我应该使用的搜索词,因为我在尝试后完全不知所措)?

**编辑:我是否希望使用interventions.mysite.org 而不是mysite.org/interventions 使问题复杂化?

【问题讨论】:

你能指定.war文件的路径和你部署的.war文件的名字吗?您是否在此 Tomcat 服务器上部署了多个应用程序? 顺便说一句,我在 Grails + Tomcat + Apache HTTPD 配置上也浪费了很多时间,直到现在我的所有问题都没有得到妥善解决。 路径是/usr/share/tomcat7-root/default_root/appname,.war是appname.war。此应用是我在此服务器上部署的唯一应用 尝试部署名为 ROOT.war 的应用程序 【参考方案1】:

在 apache 中创建一个名为interventions.mysite.org.conf 的站点

要创建站点,您只需复制在 apache 安装的站点可用文件夹中找到的现有站点文件,并在必要时进行编辑。

您的文件应该看起来像我在下面粘贴的那个,我相信我在下面粘贴的代码应该适合您,只需对 ProxyPass 和 ProxyPassReverse 字段进行编辑以匹配您的应用安装。

记得使用以下命令启用该站点;

sudo a2ensite interventions.mysite.org.conf

并确保您已启用我认为 mod_proxy。

它可以像下面那样配置;

    <VirtualHost *:80>
        ServerName interventions.mysite.org

        ErrorLog $APACHE_LOG_DIR/error.log
        CustomLog $APACHE_LOG_DIR/access.log combined

        ProxyRequests           Off
        ProxyPreserveHost       On
        ProxyErrorOverride      On

        ProxyPass               /       http://localhost:port/my-app/
        ProxyPassReverse        /       http://localhost:port/my-app/
    </VirtualHost>

如果您不了解某些配置参数,也可以阅读 apache 文档。希望有帮助。 干杯!

【讨论】:

感谢您的全面回答!我已经尝试过了,interventions.mysite.org 只是重定向到 mysite.org。有什么想法吗? 你能分享一下你的配置吗?

以上是关于在现有站点上使用 Tomcat 部署 Grails 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在一个 Tomcat + Apache 上部署多个 Grails 应用程序?

在 tomcat 上部署 grails 应用程序时创建名为“transactionManagerPostProcessor”的 bean 时出错

Grails 部署问题(WAR 和 Tomcat)

Grails项目BuildConfig.groovy Tomcat插件版本?

使用 Apache/Tomcat + 虚拟主机部署多个 grails 应用程序

使用 Tomcat 部署 grails 应用程序的最佳实践