Рейтинг:2

Using same port in both IIS and nginx on different IP addresses

флаг gb

The server is running Windows Server 2019 Standard with IIS 10, and it has two network interfaces with public IPs (198.51.100.1 and 203.0.113.1)

My desired setup:

  • IIS: 198.51.100.1 on port 80
  • IIS: 198.51.100.1 on port 443
  • IIS: 203.0.113.1 on port 80
  • nginx: 203.0.113.1 on port 443

But after IIS started, the http.sys (PID=4) starts listening 80 and 443 ports on all IPs:

  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:443            0.0.0.0:0              LISTENING       4
  TCP    [::]:80                [::]:0                 LISTENING       4
  TCP    [::]:443               [::]:0                 LISTENING       4

I can limit to particular address with 'netsh http add iplisten' command, but I want to use both 198.51.100.1 and 203.0.113.1 address in IIS. Iplisten is not allowed to specify ports.

And I don't want to use reverse proxy...

Anyone know how I can use 443 in both IIS and nginx?

флаг cn
Bob
Разве вы не можете использовать Site ==> Bindings в диспетчере IIS, чтобы прекратить прослушивание любых/всех IP-адресов и ограничить IIS только определенным IP-адресом 1.1.1.1 для порта 443, оставив IP-адрес 2.2.2.2:443: порт бесплатно для nginx для привязки?
флаг gb
Привязки IIS устанавливаются на определенные адреса (в зависимости от моей желаемой настройки). Однако http.sys прослушивает все адреса, 0.0.0.0:80 и 0.0.0.0:443.
Рейтинг:1
флаг in

Вам нужно будет использовать NETSH, чтобы настроить систему так, чтобы http.sys захватывал только определенные адреса (по умолчанию он захватывает подстановочные знаки, как вы видите в своем включенном NETSTAT)

Попробуйте запустить их из командной строки с повышенными правами (после остановки службы IIS)

netsh http удалить iplisten 0.0.0.0
netsh http добавить iplisten 198.51.100.1:80
netsh http добавить iplisten 198.51.100.1:443
netsh http добавить iplisten 203.0.113.1:80

Это должно перенастроить http.sys для прослушивания только указанных комбинаций IP:Port, а не для упреждающего захвата каждого: 80 и : 443 в системе.

Важная заметка -- помните, что вы теперь ограничили комбинации IP-портов, на которые IIS может отвечать (независимо от того, как вы настраиваете привязки на сайтах в IIS Admin). Если в будущем вам потребуется добавить больше IP-адресов и/или портов, вам придется выполнить дополнительные действия. netsh http добавить iplisten команды.

флаг in
У меня нет сервера 2019 года, чтобы поиграть с ним, но я только что просмотрел спецификацию MS Docs по этой команде, и она изменилась с тех пор, как я в последний раз использовал ее. Текущая спецификация показывает, что она не использует (и будет игнорировать) номер порта, что означает, что это может не сработать для разделения 203.0.113.1 как на IIS, так и на nginx. Возможно, вам придется отказаться от всего этого IP-адреса из IIS и не запускать на нем сайт :80). YMMV, так что сначала протестируйте его. Но сейчас я вижу это в документах. https://docs.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-http#add-iplisten
флаг gb
Действительно, мы не можем указать порт в команде netsh http iplisten (на 2019, а также на 2016 или на 2008). В исходном посте я упоминал об этом.
флаг in
Извините, @crazyman, я не знаю, как я прочитал это несколько раз и постоянно пропускал то, что вы уже определили, что иплистен не будет работать. Я бы поклялся, что мог использовать порты в 2008r2, но на самом деле это было достаточно давно, чтобы это могло быть 03. Я только что снова просмотрел документы и не вижу ничего текущего, что ограничивало бы http.sys на определенные порты.
флаг gb
Без проблем. Может это был 2003. В 2008р2 точно нельзя указать порт https://paste.pics/8777daa1495927d741c6d3e7831e9f23

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.