Обратная переадресация прокси-сервера

Обратная переадресация прокси-сервера

Не могли бы вы помочь мне?

sudo echo "1" > /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 1.1.1.1
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 2.2.2.2
sudo iptables -t nat -A POSTROUTING -j MASQUERADE

Я использую эти правила iptables для создания серверов балансировки нагрузки. Я просто распределяю содержимое .mp4 и .mp3, но эти правила используют полосу пропускания сервера, которую я использую для этой пересылки, а не полосу пропускания сервера назначения.

Как мне решить эту проблему? Пользователь должен использовать пропускную способность сервера назначения вместо сервера перенаправления. Спасибо.

решение1

Как мне решить эту проблему? Пользователь должен использовать пропускную способность сервера назначения вместо сервера перенаправления. Спасибо.

Обычно есть несколько способов:

  1. Использовать Round Robin DNS. Все серверы имеют одно и то же имя, но на разных IP-адресах. Клиенты будут выбирать случайный сервер.
  2. Используйте перенаправления для перенаправления пользователей на соответствующий сервер.
  3. Использовать Anycast. Все серверы имеют одинаковый IP. Из-за особенностей маршрутизации пользователи обычно подключаются к локальному.

Round Robin DNS и перенаправления — это, как правило, то, что вы можете настроить самостоятельно. Для anycast вам придется либо иметь возможность самостоятельно анонсировать BGP в нескольких регионах, либо взаимодействовать с несколькими интернет-провайдерами по всему миру.

Еще одна отличная идея — просто проигнорировать проблему и поставить перед ней службу вроде Cloudflare или Akami, и позволить им заниматься балансировкой нагрузки. Если вам нужен больший контроль, можно также разместить контент в облачном решении, таком как Azure или Google Cloud, где вам в меньшей степени придется беспокоиться о нагрузке при получении данных из хранилища больших двоичных объектов.


Что делают ваши правила

С помощью ваших правил вы переписываете пункт назначения пакета и отправляете его на другой сервер.добавлениетымаскировать их, так что для бэкенд-серверов кажется, что пакет пришел с вашего фронтенда. Бэкенд послушно отвечает, отправляя ответный пакет обратно на ваш фронтенд, который ищет в своей таблице, откуда пришло это соединение, и отправляет пакет исходному клиенту. Сервер, который на самом деле является маршрутизатором, должен коснуться пакетов, чтобы переписать заголовки, и все пакеты должны пройти через этот сервер.

Во многих случаях такая настройка может иметь большой смысл. Маршрутизация большого количества трафика довольно тривиальна, и ее легко и надежно настраивать. Она обеспечивает высокую доступность, когда вы отбрасываете не отвечающие серверы, а для нагрузок, не отслеживающих состояние, очень легко увеличить емкость — при условии, что ваш маршрутизатор может справиться с объемом трафика.

Связанный контент