apache - Tomcat 到 Grails 中的 Apache 代理/URL 子目录

标签 apache tomcat grails amazon-ec2 amazon-elastic-beanstalk

使用 Auto Scaling 弹性负载均衡器在 AWS Elastic Beanstalk 上运行 Grails 网络应用程序。

我们有另一个 AWS EC2 实例运行我们的博客,即。 blog.domain.com

有没有办法将流量从 domain.com/blog 路由到博客 EC2 实例?我知道使用 Apache 可以将代理传递给 Tomcat 实例,但是可以反过来吗?如果是这样,它甚至可以与 Auto Scaling 一起使用吗?

最佳答案

您可以在您的 grails 应用程序中将 /blog 配置为 Controller ,方法如下:

class BlogController {
   def index() {
      redirect(url: "http://blog.domain.com")
   }    
}

编辑:我的回答没有解决指定代理而不是重定向的问题...所以这是我的修改版本:

我采用了此处提供的现有 Java 代理 servlet 代码:http://edwardstx.net/2010/06/http-proxy-servlet/并在这里实现了一个 Grails Controller :https://github.com/AtlasOfLivingAustralia/biocache-hubs/blob/master/grails-app/controllers/au/org/ala/biocache/hubs/ProxyController.groovy (太大而无法粘贴)

将以下内容添加到您的 URL 映射文件中:

"/blog/$path**" (controller: 'proxy'){
    action = [POST:'doPost']
}
"/blog/$path**" (controller: 'proxy'){
    action = [GET:'doGet']
}

根据内存,我认为这段代码希望 $path 是一个完整的 URL,您可能希望将 URL 前缀存储在一个字段中,并且只传递链接中的路径部分(如果说得通)。请注意,您不会显示任何布局等,它只会重现在其他应用程序中创建的页面。您可以使用 cache plugin 添加一些缓存。 .

编辑 2:此代码可能对您的要求有些矫枉过正,您最好编写一个简单的 GET 服务,然后将其发送回客户端...如此处所述Writing a proxy in grails

关于apache - Tomcat 到 Grails 中的 Apache 代理/URL 子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35762984/

相关文章:

Apache 2 Windows 旋转日志帮助

apache - 使用 Apache Rewrite 从 HTTP 转到 HTTPS,反之亦然,但我收到 302 响应并且我的应用程序出错

hibernate - 潜在的 hibernate 版本问题:java.lang.NoSuchMethodError:org.hibernate.cfg.Configuration.setListener(Ljava/lang/String; Ljava/lang/Object;)

grails - 如何在grails中解密 "Spring Security"密码?

oracle - HTP.P 不再在应用程序中工作

grails - Grails的String静态映射[]

java - 识别 Tomcat 上的服务器(HttpServletRequest.getLocalAddr() 失败)

MySQL-bin.XXX 占用日志中的大量空间

Java ProcessBuilder.start(Tomcat7.exe) 启动进程但它挂起帮助吗?

tomcat - 我如何在 servlet 之间共享 session 状态?