Неважно, к какому хосту обращается веб-приложение Java.
Предположим, у вас есть несколько клиентов, разделенных на одном хосте, например 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.
Если вы хотите иметь разные функции для каждого субдомена, например, help.yourhost.com и www.yourhost.com, я бы предложил вам написать независимые приложения Grails. Затем вы настраиваете сервер NGINX для перенаправления этих запросов соответствующему приложению, запущенному на сервере приложений.