Грааль и Поддомены - PullRequest
       4

Грааль и Поддомены

6 голосов
/ 11 февраля 2012

Знает ли Grails что-нибудь о поддоменах (то есть subdomain.domain.com)? Я не вижу, чтобы это обсуждалось в руководстве . Это чисто проблема сервера приложений / веб-сервера? Может быть привязан к контроллеру Grails, статически или динамически?

Ответы [ 3 ]

10 голосов
/ 12 февраля 2012

Неважно, к какому хосту обращается веб-приложение Java.

  1. Предположим, у вас есть несколько клиентов, разделенных на одном хосте, например customer1.yourhost.com, customer2.yourhost.com и т. д., и все клиенты будут иметь одинаковые функции.

    В простейшем случае я утверждаю, что вы просто используете write filter, который всегда помещает некоторую переменную запроса, например:

    def filters = {
        all(controller:'*', action:'*') {
            before = {
                if (request.serverName.contains(".")) {
                    def clientName = 
                      request.serverName.substring(0, request.serverName.indexOf("."))
    
                    request.currentClient = Client.findByClientName(clientName) // e.g.
                }
            }
        }
    }
    

    Тогда в любом месте вы можете проверить request.currentClient на текущий доступный поддомен.

    Однако, если вам станет сложнее, взгляните на несколько мультитенантных плагинов для Grails.

  2. Если вы хотите иметь разные функции для каждого субдомена, например, help.yourhost.com и www.yourhost.com, я бы предложил вам написать независимые приложения Grails. Затем вы настраиваете сервер NGINX для перенаправления этих запросов соответствующему приложению, запущенному на сервере приложений.

1 голос
/ 17 февраля 2012

Мы запускаем несколько приложений Grails на одном хосте, используя различные субдомены.Во всех случаях мы используем Apache для подключения к серверу Tomcat и используем mod jk или forward proxy для обработки приложений в другом приложении Grails.Большая часть этого довольно проста, но мы не поняли, что приложения запускаются на корневом уровне для различных доменов, например - http://app1.domain.com вместо http://app1.domain.com/app1

0 голосов
/ 11 февраля 2012

Единственное место, которое мне известно о рассматриваемых поддоменах, - это разрешение арендатора при использовании мультитенантного плагина.Смотри http://tinyurl.com/6tuxwvs.

...