Сайт коллекции SharePoint, управляемые пути, а можно субдомены?
Сильно не буду влезать в теорию, т.к. она очевидна тем специалистам, которым может быть интересен итоговый тезис статьи.
Речь пойдет о ссылках, по которым могут быть размещены сайт коллекции SharePoint.
Без минимума теории было бы тоже неправильно.
Если взглянуть на логическую архитектуру сайтов SharePoint, то мы увидим следующую картину:
Во главе стола - IIS и веб-приложения, в рамках веб-приложений размещаются сайт коллекции, а в них, в свою очередь, набор сайтов.
С точки зрения адресации, веб-приложение определяет Host Header и порт, которые, кстати, легко могут быть переопределены альтернативным доступом (AAM) или расширением веб-приложения.
В рамках примера, пусть у нас будет следующее веб-приложение:
http://sharepoint2013.arvosys.ru
Сайт коллекции являются контейнерами для сайтов, которые уже в свою очередь содержат информацию отображаемую пользователю.
При этом сайт коллекция всегда содержит корневой сайт.
У сайтов может быть иерархия подсайтов.
Адреса подсайтов формируются следующим образом:
/subsite1/subsite11/.../subsiteNM/
Сайт коллекции могут быть размещены на управляемых путях, определяющих стартовый адрес.
Управляемые пути бывают двух типов:
- Явные (Explicit)
- В случае с явными путями сайт коллекция будет располагаться в корне управляемого пути, на таком пути, логично предположить, сможет существовать только одна сайт коллекция.
- Продолжим пример, допустим у нас создан управляемый путь "spdemo" с типом Explicit.
- Ссылка созданной сайт коллекции будет следующией: http://sharepoint2013.arvosys.ru/spdemo/
- Подстановки (Wildcard)
- Подстановки созданы, чтобы на них можно было располагать множество сайт коллекций, при этом для каждой сайт коллекии добавлется "папка" в пути адреса.
- По умолчанию создан управляемый путь "sites".
- При создании сайт коллекции "spdemo" ссылка будет следующией: http://sharepoint2013.arvosys.ru/sites/spdemo/
Создание сайт коллекций по управляемым путям - дело не хитрое, доступно из визуального интерфейса, и, в целом, довольно тривиальная вещь. Но мы уже подобрались к "соли" статьи.
Давайте представим ситуацию, что нам нужно:
- нашу ферму вывести конечным пользователям с использованием субдоменов, вот такое оно функциональное требование: CRM должен быть по адресу http://crm.company.org, управление проектами - http://epm.company.org, документооборот на http://ecm.company.org и так далее и никак иначе,
- т.е., все адреса должны быть на 80-м порту,
- количество субдоменов для разных функциональных случаев не ограничено.
Вроде как приходит мысль создавать разные веб-приложения по разным субдоменам, но не стоит так делать, если создание отдельных веб-приложений не обусловлено политикой безопасности или еще какими либо вескими причинами.
Кстати, вопрос: может ли быть несколько веб-приложений на одном порту? Ответ: да, конечно могут, если будут с разными Host Header'ами.
Так что же делать, спросите Вы, если не создавать отдельные веб-приложения? Как быть?
И вот ради этого ответа весь этот пост. Сайт коллекции могут быть и на субдомене, отличном от Host Header веб-приложения.
Создавать такие сайт коллекции можно только через PowerShell.
А вот и он:
Add-PSSnapin Microsoft.SharePoint.PowerShell-ErrorAction SilentlyContinue;
New-SPSite "http://spdemo.arvosys.ru" `
-HostHeaderWebApplication "http://sharepoint2013.arvosys.ru" `
-Name "SPDemo" ` -OwnerAlias "CIBSPAdmin" `
-Template "STS#0";
New-WebBinding -Name "http://sharepoint2013.arvosys.ru" `
-IPAddress "*" `
-Port 80 `
-HostHeader "spdemo.arvosys.ru";
Add-PSSnapin - добавление снапина объектной модели SharePoint, хороший тон, чтобы он присутствовал.
New-SPSite - командлет создания сайт коллекции.
- В передаваемом идентификатора надо указать ссылку на субдомене и оно будет работать.
- В параметр HostHeaderWebApplication указываем наше веб-приложение.
- Name - наименование сайт коллекции.
- OwnerAlias - владелец сайт коллекции, второго можно не указывать.
- Template - идентификатор шаблона сайт коллекции. "STS#0" - идентификатор TeamSite. Параметр можно пропустить, тогда при первой навигации к сайт коллекции можно будет выбрать нужный шаблон в визуальном интерфейсе.
New-WebBinding - одно из составляющих чуда. Непосредственно к SharePoint отношения не имеет. Данный командлет выставляет настройку IIS, а именно прописывает связь с нужным Host Header.
Последнее составляющее "чуда" - добавить запись в DNS.
В итоге в одном веб-приложении, на одном порту, на разных субдоменах, у нас заводятся и работают сайт коллекции SharePoint.
Опубликовано: 27.01.2014
Автор: Андрей Кольтяков