Понимание сетей в среде веб-хостинга
Справочная информация (извините за отсутствие правильного языка): я собираюсь запустить пару физических серверов, на каждом из которых есть несколько простых сайтов с Nginx. Серверы находятся в одном ряду, и у меня будет несколько выделенных IP-адресов (до 16). Серверы подключены через коммутатор. И их сеть находится за брандмауэром Cisco.
Мое намерение (поправьте меня, если это совершенно неправильно) - предоставить каждому серверу виртуальный IP-адрес. Затем трафик, поступающий через брандмауэр, будет подготовлен к одному из виртуальных IP-адресов (мой основной сервер). Таким образом, если у меня возникнут проблемы с основным физическим сервером, я могу отключить его и использовать его VIP на резервном физическом сервере (аварийное переключение вручную). Насколько я понимаю, если я изменю виртуальный IP-адрес отказоустойчивого сервера на тот, который использовался основным сервером, запросы на общедоступный IP-адрес будут перенаправляться на отказоустойчивый сервер.
Однако я очень растерялся, когда дело доходит до понимания сетей (как вы, наверное, уже можете сказать).
1) Если TCP-соединение приходит к общедоступному IP-адресу моего сайта, оно попадает в брандмауэр. Затем он будет направлен на основной сервер (на основе VIP). Это правильно?
2) Если оба моих сервера находятся за одним и тем же брандмауэром, как можно получить к ним доступ с одного IP-адреса (чтобы я мог указать свою запись A на один IP-адрес)? Или это невозможно сделать с помощью брандмауэра, и только маршрутизатор может справиться с этим?
3) Будет ли мой вариант использования лучше использовать статический IP-адрес или DHCP? Какие есть недостатки?
4) Я даже правильно понимаю публичные IP-адреса. Должен ли я назначить один публичный IP-адрес брандмауэру, а затем переадресовывать соединения оттуда обратно на один IP-адрес за брандмауэром? Или каждый из моих серверов получает IP-адрес, а TCP-соединения просто проходят через брандмауэр и подключаются к одному из серверов в зависимости от IP-адреса, к которому они подключены?
1 ответ
Ты понимаешь правильно. Просто отметим, что в терминах сети виртуальный IP-адрес - это, по сути, публичный IP-адрес, которым управляет ваш маршрутизатор, и вы можете сдавать его в аренду где угодно, когда угодно...
Существует два типа IP-адресов: публичные IP-адреса (которые вы обычно назначаете самому маршрутизатору), а затем у вас есть частные IP-адреса, которые вы на 100% контролируете в своей VLAN. В вашем случае вы хотели бы взять все ваши публичные IP-адреса, поместить их в одну VLAN, назначить их все вашему маршрутизатору (и попросить ваш маршрутизатор передать их в аренду через статическую IP-маршрутизацию) и убедиться, что маршрутизатор настроен. для перенаправления NAT 1:1 (которое может принимать общедоступный IP-адрес и по существу перенаправлять его на внутренний IP-адрес. Таким образом, на вашем сервере вы можете назначить его, скажем, 10.0.0.101 и иметь свой сервер резервного копирования на 10.0.0.102 Если ваш основной сервер выходит из строя, вам не нужно переключать какие-либо общедоступные IP-адреса, все, что вам нужно будет сделать на стороне маршрутизатора, - это настроить ваш общедоступный IP-адрес на другой частный IP-адрес.
Но есть и другие способы сделать это. Если вы используете что-то вроде восходящей серверной функции Nginx ( http://wiki.nginx.org/HttpUpstreamModule), у вас также может быть баланс нагрузки на веб-сервер между несколькими серверами (и если один сервер отключится, Nginx будет это нужно знать), но затем, если основной веб-сервер Nginx, передающий ваши запросы, выйдет из строя, вам понадобится какая-то другая необычная маршрутизация, чтобы также довести его до отказа. Возможно, вы захотите прочитать по адресу https://stackoverflow.com/questions/10971298/load-balancing-with-nginx:)