【问题标题】:Deploy Grails Application on Amazon EC2在 Amazon EC2 上部署 Grails 应用程序
【发布时间】:2013-06-01 11:06:45
【问题描述】:

我已经开发了 Grails 应用并成功部署在 Tomcat7 windows 版本上。我想将它部署在 Amazon EC2(AMI linux 32 版本)上。我在 EC2 上成功安装了 Tomcat7,一切正常。我将 .war 文件传输到 amazon ec2,但收到错误消息“http 状态 404:请求的资源不可用”。我想知道在 Windows 和 Linux 中生成 .war 文件之间的不匹配是否是问题的根源?任何帮助表示赞赏!

【问题讨论】:

  • 也许,当 Tomcat 尝试部署您的 .war 文件时出现一些错误。查看 catalina.out 以查看将 .war 文件复制到 EC2 实例上的 webapps 目录时是否有任何消息。顺便说一句,是否有任何理由使用 32 位 AMI 而不是 64 位?我认为所有 EC2 实例类型都支持 64 位操作系统。
  • 感谢 Raymomd。我尝试在 64 位上部署以查看它是否可以工作,而我的 Windows 开发版本是 64!
  • 也许我之前的评论令人困惑,但我并不是说 64 位与 32 位是问题的根源。阅读 Tomcat 服务器日志 (catalina.out) 应该可以提供有关该问题的更多信息。

标签: tomcat grails amazon-web-services amazon-ec2


【解决方案1】:

您是否考虑过使用 Elastic Beanstalk 进行部署? EC2 本身更像是一个 IAAS,所以你仍然需要处理很多配置细节(例如服务器安装、负载平衡..),这可能很困难。 Beanstalk 是一个免费的包装器(例如 PAAS),包含您在典型安装中所需的大多数 AWS 服务,并为您的部署准备了一些预配置的环境。

这是一个使用 Beanstalk 的 article on how to deploy Grails - 它有点旧,但仍然非常相关。

【讨论】:

    【解决方案2】:

    Boxfuse 提供了非常简单的原生支持 deploying Grails 3.x apps on EC2

    你需要做的只是字面意思

    boxfuse run my-grails3-app-1.0.jar
    

    Boxfuse 会自动

    • 融合为您的应用量身定制的最小操作系统映像(需要 包括JVM 和您的应用)
    • 将其推送到安全的在线图像存储库
    • 在大约 30 秒内将其转换为 AMI
    • 创建弹性 IP 并为其分配新域
    • 创建一个打开正确端口的安全组
    • 启动您的 AMI 实例并确保运行状况检查通过
    • 将弹性 IP(和新域)映射到您的新实例

    所有更新都作为零停机蓝/绿部署执行。如果您需要多个实例,Boxfuse 还支持 ELB、Auto-scaling 等。

    Boxfuse 分析您的本机 Grails 3 application.yml 配置并自动提取您的应用所需的端口和健康检查信息。然后使用此信息正确设置安全组和 ELB。

    更多信息:https://boxfuse.com/getstarted/grails

    免责声明:我是 Boxfuse 的创始人兼 CEO

    【讨论】:

      【解决方案3】:

      这可能是路径映射的问题。您可以尝试以 root 身份安装 Web 应用并试一试。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-17
        • 1970-01-01
        • 1970-01-01
        • 2022-07-20
        • 1970-01-01
        • 2012-05-30
        • 1970-01-01
        相关资源
        最近更新 更多