Заставить Grails прослушивать внешний IP-адрес

Я запустил приложение Grails, прослушивающее порт 8080 по умолчанию, а также запустил Grails от имени пользователя root для прослушивания порта 80:

#grails -Dserver.port=80 run-app

Это отлично работает на локальном хосте, но когда я обращаюсь к нему с внешнего IP-адреса, он просто не работает. Просто чтобы быть уверенным, у меня есть Apache, работающий на том же сервере, и я могу прекрасно получить к нему доступ через Интернет.

Есть ли какой-то параметр конфигурации, который мне не хватает здесь, чтобы попросить Grails прослушивать все IP-адреса?

Я даже пробовал это, но безрезультатно:

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

Я использую Grails 1.4.0M1 в Ubuntu 10.04 на экземпляре EC2.

Заранее спасибо.

Ханьсюэ


person Hanxue    schedule 08.07.2011    source источник
comment
Используете ли вы приложение grails run-app в качестве рабочего сервера? Это действительно предназначено только для разработки.   -  person cjstehno    schedule 08.07.2011


Ответы (3)


Если вы действительно хотите запустить его с помощью run-app, введите IP-адрес вашего сервера в командной строке, например:

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

Но вы, вероятно, обнаружите конфликт с вашим сервером Apache, работающим на том же IP-адресе.

Я думаю, вам следует изучить использование mod_proxy и mod_proxy_apj, чтобы «скрыть» ваш сервер Grails за вашим сервером Apache.

person sbglasius    schedule 08.07.2011
comment
Мне нужно было сделать: grails -Dgrails.server.host=0.0.0.0 run-app - person David Tinker; 21.03.2013
comment
и grails.server.host, и server.host допустимы (документы .grails.org/latest/ref/Command%20Line/run-app.html) - person Nick De Greek; 15.09.2017

Как отметил cjstehno, в производстве вы должны запускать приложение как войну, развернутую на сервере приложений (Tomcat, TCServer и т. д.), и в идеале это должно работать за веб-сервером (Apache) для маршрутизации трафика.

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

person Nick Larson    schedule 08.07.2011

если вы используете ec2, убедитесь, что в брандмауэре открыт порт 80 для всего мира (или любой другой IP-адрес, с которого вы подключаетесь). это не значение по умолчанию и сбивает с толку многих пользователей ec2, впервые использующих ec2.

person Ted Naleid    schedule 08.07.2011