2016-11-23 13 views
0

У меня есть архитектура haproxy на веб-сервере, который направляется на подчиненные серверы, где у меня есть pgbouncer поверх postgre. HAPoxy конфигурации:Сервер HAProxy + pgbouncer неожиданно завершил соединение

global 
    log 127.0.0.1 local1 debug 
    user haproxy 
    group haproxy 

defaults 
    log global 
    retries 3 
    timeout connect 1s 
    timeout server 20m 
    timeout client 20m 

listen pgsql-cluster 
    bind 127.0.0.1:5433 
    mode tcp 
    balance leastconn 
    #option pgsql-check user postgres - 
    default-server inter 1s downinter 1s rise 2 fall 1 
    server pgsql-1 10.5.8.14:6432 check 
    server pgsql-2 10.5.8.21:6432 check 

Pgbouncer конфигурации по умолчанию. Первая проблема, pgsql-check не работает. pgboucer.log:

2016-11-23 12:47:37.805 17068 WARNING C-0x23bb760: (nodb)/(nouser)@10.5.8.13:48898 Pooler Error: No such database: postgres 
2016-11-23 12:47:37.805 17068 LOG C-0x23bb760: (nodb)/(nouser)@10.5.8.13:48898 login failed: db=postgres user=postgres 

Но самая большая проблема, в том, что после некоторого периода времени у меня есть много ошибок на моем сайте (Yii2). Лог:

2016-11-22 16:37:42 [10.5.33.135][-][-][error][application] SQLSTATE[08006] [7] server closed the connection unexpectedly 
This probably means the server terminated abnormally 
before or while processing the request. in file /var/www/copy-search/vendor/yiisoft/yii2/db/Connection.php on line 547 

У меня такое чувство, что гапрокси просто нарушает сеанс.

ответ

0

Чтобы ответить на первую проблему, убедитесь, что пользователь с именем postgres определен в конфигурациях PG Bouncer. В настоящее время у меня есть настройка HA Proxy для распределения нагрузки между двумя процессами PG Bouncer, и у вас есть пользователь postgres и база данных postgres, определенная в моих конфигурациях, и проверка работоспособности. Что касается второй проблемы, то в настоящее время я получаю ту же ошибку.

Update:

Я увеличил время ожидания на HA Proxy и это помогает устранить проблему.

listen pgsql-cluster 
    bind 127.0.0.1:5433 
    mode tcp 
    balance leastconn 
    timeout client 30h 
    timeout server 30h 
    #option pgsql-check user postgres - 
    default-server inter 1s downinter 1s rise 2 fall 1 
    server pgsql-1 10.5.8.14:6432 check 
    server pgsql-2 10.5.8.21:6432 check