Перенаправление портов и балансировщик нагрузки на сервере Ubuntu 12.04

Вопрос или проблема

Я ищу способ создать сервер балансировки нагрузки. В основном, вот что я хочу сделать:

У меня есть публичный 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

  1. Обновите список доступных пакетов:

    sudo apt-get update
  2. Установите HAProxy:

    sudo apt-get install haproxy

Конфигурация HAProxy

  1. Откройте файл конфигурации HAProxy:

    sudo nano /etc/haproxy/haproxy.cfg
  2. Добавьте следующий блок конфигурации:

    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 является надежным и гибким инструментом, который удовлетворит вашим требованиям по балансировке нагрузки и переадресации портов.

Оцените материал
Добавить комментарий

Капча загружается...