Настройка Pound Reverse Proxy (Debian)

Судя по популярности поста про nginx (исходя из статистики переходов с гугла) решил написать еще одну статейку по reverse proxy. Объектом рассмотрения будет Pound. И так Pound “фунт” можно использовать в роли балансировщика (Load Balancing) и просто реверс прокси. В режиме балансировки он сам определяет отвалился ли бекэнд и перенаправляет весь трафик на оставшиеся, периодически чекая отвалившейся хост. Как только Backend восстановился “фунт” начинает перебрасывать трафик и на него.

В моей практике я не использовал “фунт” для балансировки (как по мне для этого лучше использовать Nginx).

Установка Pound (на Debian)

sudo apt-get update
sudo aptitude install pound

В Debian конфигурационный файл находится:

/etc/pound/pound.cfg

Открываем конфиг

sudo  nano /etc/pound/pound.cfg

И добавляем следующие строки:

ListenHTTP
         Address 8.8.8.8
         Port    80
         Service
       HeadRequire "Host: rootadmin.org.ua"
                  BackEnd
                       Address 192.168.1.200
                       Port    8080
                  End
          End
 End


Address 8.8.8.8 – публичный адрес на котором сервер будет слушать

Address 192.168.1.200 – Внутренний адрес бекэнда

Port 8080 – порт на котором слушает бекэнд HeadRequire “Host: lol.ru” – по какому хидеру пробрасывать запрос к бекенду (полезно если у вас несколько сайтов на одном публичном IP).

Сохраняем кофиг комбинацией Ctrl+O и Enter. Перезапускам “фунт”

/etc/init.d/pound restart

  По дефолту Pound пишет логи в сислог. Просмотреть можно командой:

less /var/log/messages | grep pound

Ну и на последок семпл конфига показывающий весь широкий функционал Pound :

## Minimal sample pound.cfg
######################################################################
## global options:
User		"www-data"
Group		"www-data"
#RootJail	"/chroot/pound"
## Logging: (goes to syslog by default)
##	0	no logging
##	1	normal
##	2	extended
##	3	Apache-style (common log format)
LogLevel	1
## check backend every X secs:
Alive		30
## use hardware-accelleration card supported by openssl(1):
#SSLEngine	""
######################################################################
## listen, redirect and ... to:
# Here is a more complex example: assume your static images (GIF/JPEG) are to be served from  a  single  back-end  192.168.0.10.  In
#       addition,  192.168.0.11  is  to  do  the  hosting for www.myserver.com with URL-based sessions, and 192.168.0.20 (a 1GHz PIII) and
#       192.168.0.21 (800Mhz Duron) are for all other requests (cookie-based sessions).  The logging will be done by the back-end servers.
#       The configuration file may look like this:
              # Main listening ports
              ListenHTTP
                  Address 202.54.1.10
                  Port    80
                  Client  10
              End
              ListenHTTPS
                  Address 202.54.1.10
                  Port    443
                  Cert    "/etc/pound/pound.pem"
                  Client  20
              End
              # Image server
              Service
                  URL ".*.(jpg|gif)"
                  BackEnd
                      Address 192.168.1.10
                      Port    80
                  End
              End
             # Virtual host www.myserver.com
              Service
                  URL         ".*sessid=.*"
                  HeadRequire "Host:.*www.nixcraft.com.*"
                  BackEnd
                      Address 192.168.1.11
                      Port    80
                  End
                  Session
                      Type    PARM
                      ID      "sessid"
                      TTL     120
                  End
              End
              # Everybody else
              Service
                  BackEnd
                      Address 192.168.1.20
                      Port    80
                      Priority 5
                  End
                  BackEnd
                      Address 192.168.1.21
                      Port    80
                      Priority 4
                  End
                  Session
                      Type    COOKIE
                      ID      "userid"
                      TTL     180
                  End
              End

На этом настройка Pound в качестве reverse proxy закончена.

 

Pin It

Leave a Reply

Your email address will not be published. Required fields are marked *