Назад | Перейти на главную страницу

Как запустить VisualSVN Server на порту 443 с IIS на том же сервере?

Сервер 2008 R2 с пакетом обновления 1 (SP1)
VisualSVN Server 2.1.6

На сервере IIS около 10 сайтов. Один из них использует https через порт 443 со следующими привязками:

http x.x.x.39:80 site.com
http x.x.x.39:80 www.site.com
https x.x.x.39:443

Свойства сервера VisualSVN

server name: svn.SomeSite.com
server port: 443
Server Binding: x.x.x.40

Никакие сайты в IIS не слушают x.x.x.40.

При запуске сервера VisualSVN выдают следующие ошибки:

  • make_sock: не удалось выполнить привязку к адресу x.x.x.40: 443 (OS 10013) Была предпринята попытка получить доступ к сокету способом, запрещенным его разрешениями на доступ.
  • нет доступных гнезд для прослушивания, выключение

Когда я останавливаю Site.com на IIS, VisualSVN Server запускается без проблем. Когда я привязываю сервер VisualSVN к порту 8443 и запускаю Site.com, сервер VisualSVN запускается без проблем.

Моя цель - получить доступ к серверу VisualSvn с обычным URL-адресом, то есть с тем, который не использует номер порта в адресе:

https://svn.site.com vs https://svn.site.com:8443

Что необходимо настроить, чтобы разрешить VisualSVN Server работать на порту 443 с IIS, работающим на том же сервере?

Редактировать / Ответить

В ответ предоставил Иван указали мне в правильном направлении. Для всех, кто сталкивается с этим, вот немного дополнительной информации.

Несмотря на то, что в моем IIS не было привязки к IP-адресу, который я использую для VisualSvn, IIS все равно возьмет IP-адрес в заложники, если IIS явно не указано, какие IP-адреса следует слушать.

В Win Server 2k8 нет графического интерфейса пользователя для настройки IP-адресов для прослушивания IIS; по умолчанию IIS прослушивает все IP-адреса, назначенные серверу.

Следующее поможет настроить IIS для прослушивания только тех IP-адресов, которые вам нужны:

  1. открыть командную строку
  2. войти: netsh
  3. войти: http
  4. войти: show iplisten -> это покажет таблицу IP-адресов, которые IIS прослушивает. По умолчанию таблица будет пустой (я думаю, это означает, что IIS прослушивает все IP-адреса)
  5. Для каждого IP-адреса, который IIS должен прослушивать, введите: add iplisten ipaddress=x.x.x.x
  6. войти: show iplisten -> теперь вы должны увидеть все IP-адреса, добавленные в таблицу прослушивания.
  7. Выйдите, а затем сбросьте IIS.

Каждую из этих команд также можно запустить напрямую, т. Е. netsh http show iplisten

Если вам нужно удалить IP-адрес из таблицы прослушивания:

  1. открыть командную строку
  2. войти: netsh
  3. войти: http
  4. войти: delete iplisten ipaddress=x.x.x.x
  5. Выйдите, а затем сбросьте IIS.

Уже ответил там. Используйте следующую команду:

netsh http add iplisten ipaddress=x.x.x.39

Два отдельных процесса не могут связываться с одним и тем же портом по одному и тому же адресу.

Есть несколько вариантов: добавить второй IP-адрес к серверу или использовать обратный прокси-сервер, который может обслуживать оба сайта на 443 с помощью одного и того же процесса.