3台のサーバーがあり、そのうちの2台はpostgres 9.5.3を実行しており、3台目はpgbouncer 1.7.2を実行しています。
私はpgbouncerを介して2つのpostgresqlインスタンスの1つにアクセスでき、すべて完璧に動作します。他のpostgresqlサーバーを呼び出します。P1は私の制御下にないため、sslを使用して接続する必要があるため、次の行をこのサーバーに追加しましたpga_hba.conf
hostssl all all ###.###.###.###/32 md5
PgbouncerサーバーからPSQLでP1に問題なく接続できます。しかし、pgbouncerを介してP1に接続すると、このエラーメッセージが表示されます
psql: ERROR: no pg_hba.conf entry for Host "XXX.XXX.XXX.XXX", user "myuser", database "mydb", SSL off
ここに私のpgbouncer.iniがあります
[databases]
my_database = Host=xxx.xxx.xxx.xxxx port=5432 dbname=mydb user=myuser password=mypassword client_encoding='UTF8'
[pgbouncer]
listen_addr = *
listen_port = 5432
auth_type = md5
auth_file = /etc/pgbouncer/userlist.txt
logfile = /var/log/postgresql/pgbouncer.log
pidfile = /var/run/postgresql/pgbouncer.pid
admin_users = rms_admin
pool_mode = session
server_reset_query = DISCARD ALL
server_check_query = select 1
default_pool_size = 40
stats_period=300
log_pooler_errors = 1
ignore_startup_parametersと組み合わせてmy_databaseへの接続文字列にsslmode = requireを追加しようとしましたが、pgbouncerログで次のエラーが発生しました。
ERROR skipping database my_database because of unknown parameter in connstring: sslmode
pgbouncerでssl接続を構築するにはどうすればよいですか?
Pgbouncerとサーバー間のTLSは、接続文字列では有効になりませんが、server_tls_sslmode
で有効になります。これはデフォルトで無効になっています。
少なくともprefer
に設定する必要があります。また、相手側のTLS構成によっては、他のserver_tls_*
パラメータのいくつかが必要になる場合があります。
詳細は https://pgbouncer.github.io/config.html#tls-settings を参照してください。