Компиляция и установка PgBouncer
Сборка
Компиляция PgBouncer зависит от нескольких факторов:
-
GNU Make 3.81+;
-
Libevent 2.0+;
-
OpenSSL 1.0.1+ для поддержки TLS;
-
(необязательно) c-ares в качестве альтернативы evdns от Libevent;
-
(необязательно) Библиотеки PAM.
-
Когда зависимости будут установлены, просто запустите:
$ ./configure --prefix=/usr/local
$ make
$ make install
Если сборка будет выполняться из Git, пожалуйста, ознакомьтесь с отдельными инструкциями по сборке ниже.
Поддержка поиска DNS
PgBouncer выполняет поиск имени хоста во время подключения, а не один раз при загрузке конфигурации. Для этого требуется асинхронная реализация DNS. В следующей таблице показаны поддерживаемые серверы и порядок их проверки:
backend | parallel | EDNS0 (1) | /etc/hosts | SOA lookup (2) | нетte |
---|---|---|---|---|---|
c-ares | Да | Да | Да | Да | Ошибка IPv6 + CNAME в <=1.10 |
evdns, libevent 2.x | Да | Нет | Да | Нет | Не проверяет обновления /etc/hosts |
getaddrinfo_a, glibc 2.9+ | Да | Да (3) | Да | Нет | N/A для не glibc |
getaddrinfo, libc | Нет | Да (3) | Да | Нет | Требуется pthreads |
- Для EDNS0 требуется более 8 адресов для одного имени хоста.
- Поиск SOA необходим для повторной проверки имен хостов при изменении серийного номера зоны.
- Чтобы включить EDNS0, добавьте
options edns0
в/etc/resolv.conf
.
c-ares — это наиболее полнофункциональная реализация, которую рекомендуется использовать в большинстве случаев и для двоичной упаковки (если доступна достаточно новая версия). Встроенный в Libevent evdns также подходит для многих случаев использования с перечисленными ограничениями. Другие серверные части на данный момент являются в основном устаревшими и больше не тестируются.
По умолчанию используется c-ares, если он доступен. Его использование можно принудительно включить с помощью configure --with-cares
или отключить с помощью --without-cares
. Если c-ares не используется (не найден или отключен), то используется Libevent. Укажите --disable-evdns
, чтобы отключить использование evdns в Libevent и вернуться к реализации на основе libc.
Аутентификация PAM
Чтобы включить аутентификацию PAM, ./configure
имеет флаг --with-pam
(значение по умолчанию — нет). При компиляции с поддержкой PAM становится доступен новый глобальный тип аутентификации pam
для проверки пользователей с помощью PAM.
Интеграция systemd
Чтобы включить интеграцию с systemd, используйте параметр configure --with-systemd
. Это позволяет использовать Type=notify
(или Type=notify-reload
при использовании systemd 253 или более поздней версии), а также активировать сокет. Примеры см. в etc/pgbouncer.service
и etc/pgbouncer.socket
.
Сборка из Git
Для сборки PgBouncer из Git необходимо получить подмодули libusual и uthash и сгенерировать файлы заголовков и конфигурации, прежде чем запускать configure
:
$ git clone https://github.com/pgbouncer/pgbouncer.git
$ cd pgbouncer
$ git submodule init
$ git submodule update
$ ./autogen.sh
$ ./configure
$ make
$ make install
По умолчанию все файлы будут установлены в /usr/local
папке. Можно предоставить один или несколько параметров командной строки для configure
. Запустите ./configure --help
, чтобы просмотреть доступные параметры и переменные среды, которые настраивают конфигурацию.
Требуются дополнительные пакеты: autoconf
, automake
, libtool
, pandoc
.
Тестирование
Информацию о том, как запускать тесты, см. в файле README в каталоге тестов.