Как я могу перенаправить внешний IP-адрес на несколько локальных серверов?

#iphone #ios #networking #wireless #router

#iPhone #iOS #сеть #беспроводной #маршрутизатор

Вопрос:

Я разрабатываю приложение для iPhone, в котором я использую локальный Mac в качестве веб-сервера. У меня также есть другой Mac, который я планирую использовать в качестве резервной копии. Мой вопрос заключается в следующем: учитывая, что в приложении есть один запрос URL, возможно ли перенаправить запрос на любой из компьютеров?

Я много читал о переадресации портов, но не видел случая, когда вы могли бы перенаправлять на несколько локальных веб-серверов.

Редактировать:

Выбор сервера может быть случайным или просто последовательным — если первый не отвечает, попробуйте второй. Я хочу сказать, что в случае, если мой главный сервер по какой-либо причине отключится (например, перезагрузится), ответит другой. Я не собираюсь распределять нагрузку на трафик.

Комментарии:

1. Я не понимаю вашего вопроса. Вы хотите, чтобы отвечали оба компьютера? Только на один из них? Какой в данном случае? Должен ли он выбираться случайным образом?

Ответ №1:

Я предполагаю, что у вас есть две машины на счастливой стороне брандмауэра / маршрутизатора NAT.

Я предполагаю, что вы хотите, чтобы ваши запросы обрабатывались любым сервером случайным образом.

Циклический DNS

Один из возможных способов сделать это — присвоить обоим компьютерам одинаковое имя хоста на DNS-сервере (большинство маршрутизаторов предоставляют некоторое программное обеспечение DNS). Если программное обеспечение вашего маршрутизатора позволяет назначать два IP-адреса определенному имени хоста (многие могут) и позволяет назначать короткий TTL DNS, вы могли бы перенаправить перенаправление портов на имя хоста, и пусть циклический DNS обеспечивает дешевую балансировку нагрузки для вас.

Это зависит от того, что ваш DNS-сервер рандомизирует ответы на циклические DNS-запросы, а также зависит от вашего маршрутизатора, запрашивающего DNS-адреса для пересылки. (Что является самой слабой частью моего предложения — перенаправление на имя хоста, безусловно, забавно желать.)

Явный выбор порта

Другая возможность заключается в том, чтобы на вашем маршрутизаторе были настроены для пересылки три порта: перенаправлять порт 80 скрипту, который случайным образом перенаправляет (ответ 302 ) на порт 81 или port 82 . Направляйте порт 81 на одну машину, порт 82 на другую машину. Это сделает ваши URL-адреса более уродливыми ( http://www.example.com:81/path/to/resource ), но предъявляет меньше требований к вашему маршрутизатору.

Комментарии:

1. Спасибо, samold. Можете ли вы показать пример того, как настроить циклическое решение? любая дополнительная помощь была бы отличной, поскольку я не уверен, как это сделать. Спасибо!

2. Сервер, с которым я больше всего знаком, PowerDNS, предоставляет серверную часть pipe , которая была разработана специально для такого рода быстрых ответов TTL. На других серверах могут быть доступны другие механизмы.

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