让Grails监听外部IP地址

时间:2011-07-08 11:17:55

标签: java grails ubuntu amazon-ec2

我启动了一个Grails应用程序,听取默认端口8080,以及以root身份运行grails来侦听端口80:

#grails -Dserver.port=80 run-app

这在localhost上工作得非常好,但是当我从外部IP地址访问它时,它就无法工作。可以肯定的是,我在相同的服务器上运行Apache,我可以通过Internet完全访问它。

我是否缺少一些配置选项,要求Grails监听所有IP地址?

我甚至试过这个但无济于事:

#grails -Dserver.host=0.0.0.0 -Dserver.port=80 run-app

我在EC2实例上的Ubuntu 10.04上使用Grails 1.4.0M1。

提前致谢。

寒雪

3 个答案:

答案 0 :(得分:2)

如果您真的想使用run-app运行它,请在命令行中输入您的服务器IP地址,如下所示:

#grails -Dserver.host=xx.xx.xx.xx -Dserver.port=80 run-app

但是您可能会发现与运行在同一IP上的Apache服务器发生冲突。

我认为你应该考虑使用mod_proxy和mod_proxy_apj“隐藏”你的grails服务器beghind你的Apache服务器

答案 1 :(得分:0)

正如cjstehno指出的那样,在生产中你应该将应用程序作为部署到AppServer(Tomcat,TCServer等)的战争运行。理想情况下,它应该在WebServer(Apache)后面运行以路由流量。

参见 - > http://grails.org/doc/latest/guide/17.%20Deployment.html

答案 2 :(得分:0)

如果您使用的是ec2,请确保防火墙的端口80已打开到世界(或者您连接的任何IP)。这不是默认设置,并且很多人第一次使用ec2。