Вопрос или проблема
Я ищу способ создать сервер балансировки нагрузки. В основном, вот что я хочу сделать:
У меня есть публичный IP-адрес, скажем, 1.1.1.1, и второй публичный IP-адрес, скажем, 2.2.2.2. У меня есть веб-сайт, www.f.com, который указывает на 1.1.1.1 через A-запись. Я хочу, чтобы сервер Ubuntu перенаправлял трафик следующим образом:
- Трафик порта 80 перенаправляется на 2.2.2.2 на порты 60,000 и 60,001.
- Трафик порта 443 перенаправляется на 2.2.2.2 на порты 60,010 и 60,011.
- Трафик порта 25 перенаправляется на 2.2.2.2 на порты 60,020 и 60,021.
Перенаправление портов более важно, чем возможность балансировки нагрузки.
С нетерпением жду ответов. Оба сервера, 1.1.1.1 и 2.2.2.2, работают на Ubuntu 12.04 серверной версии.
Я бы рекомендовал Pound (http://www.apsis.ch/pound). Это легкий, простой в настройке инструмент, который быстро и эффективно обрабатывает https и делает именно то, что вам нужно.
Если вы хотите балансировать данные, я бы порекомендовал использовать Varnish. У него простая установка и настройка, и легко добавить узлы в будущем.
Если вы хотите обслуживать HTTP
или необработанный TCP
трафик, HAProxy
может быть хорошим вариантом для вас. Он удовлетворяет всем условиям, которые вы указали выше.
Ссылки:
Ответ или решение
Для реализации балансировки нагрузки и переадресации портов на сервере с Ubuntu 12.04 вы можете использовать несколько подходящих инструментов. В данном ответе я опишу, как воспользоваться HAProxy, так как он отлично справляется с вашей задачей по переадресации трафика, причем без особых усилий можно организовать балансировку нагрузки.
Установка HAProxy
-
Обновите список доступных пакетов:
sudo apt-get update
-
Установите HAProxy:
sudo apt-get install haproxy
Конфигурация HAProxy
-
Откройте файл конфигурации HAProxy:
sudo nano /etc/haproxy/haproxy.cfg
-
Добавьте следующий блок конфигурации:
global log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy stats socket /run/haproxy/admin.sock mode 660 level admin stats timeout 30s user haproxy group haproxy daemon defaults log global option httplog option dontlognull timeout connect 5000ms timeout client 50000ms timeout server 50000ms frontend http_front bind 1.1.1.1:80 acl port_60k dst_port 60000 acl port_60k1 dst_port 60001 use_backend backend_http if port_60k or port_60k1 frontend https_front bind 1.1.1.1:443 acl port_60k10 dst_port 60010 acl port_60k11 dst_port 60011 use_backend backend_https if port_60k10 or port_60k11 frontend smtp_front bind 1.1.1.1:25 acl port_60k20 dst_port 60020 acl port_60k21 dst_port 60021 use_backend backend_smtp if port_60k20 or port_60k21 backend backend_http server server1 2.2.2.2:60000 check server server2 2.2.2.2:60001 check backend backend_https server server1 2.2.2.2:60010 check server server2 2.2.2.2:60011 check backend backend_smtp server server1 2.2.2.2:60020 check server server2 2.2.2.2:60021 check
Здесь мы создаем интерфейсы для HTTP, HTTPS и SMTP трафика, и перенаправляем запросы на соответствующие порты второго сервера.
Перезапуск HAProxy
После изменения конфигурации вам необходимо перезапустить HAProxy, чтобы применить изменения:
sudo service haproxy restart
Проверка работы
Убедитесь, что HAProxy работает корректно, проверив статус службы:
sudo service haproxy status
Затем вы можете проверить переадресацию, отправив запросы на 1.1.1.1 на порты 80, 443 и 25 и убедившись, что они корректно обрабатываются.
Заключение
С помощью данной конфигурации вы сможете осуществлять переадресацию трафика с одного IP на другой, а также оптимально распределить нагрузку между двумя серверами. HAProxy является надежным и гибким инструментом, который удовлетворит вашим требованиям по балансировке нагрузки и переадресации портов.