私はPostgresqlバックエンドを備えたDjango Webサイトを持っています。これはpgbouncer
、db接続プーリング(トランザクションモード)に利用しています。
アプリケーションと DB は別々のサーバー (それぞれ 1 サーバー) にあります。pgbouncer
アプリケーションサーバーにインストールしました。私の質問は次のとおりです。構成は何にあるべきsettings.py
ですか? pgbouncer への接続にUnix ソケットを使用していることに注意してください。
私の現在のsettings.py
内容:
DATABASE_URL = 'postgres://user1:pass1@xx.xxx.xxx.xxx:5432/db1'
DATABASES = {
'default': dj_database_url.config(default=DATABASE_URL)
}
の関連セクションは次のpgbouncer.ini
とおりです。
[databases]
db1 = host=xx.xxx.xxx.xxx port=5432 dbname=db1
listen_addr = *
listen_port = 6432
auth_type = md5
unix_socket_dir = /var/run/postgresql
pool_mode = transaction
max_client_conn = 200
default_pool_size = 300
userlist.txt
内容:
"user1" "pass1"
注: 1 つの答えは here ですが、私の場合はローカルで DB を使用できないため、うまくいきません。を使用する代わりに、DATABASE_URL 環境変数を設定する必要がありますdefault = '...'
。
pgbouncer
1 つの提案は、 でデータベースとして扱うことsettings.py
です。その場合、次のようなものは機能しますか?
if PRODUCTION == '1':
#PRODUCTION is set to '1' if in production environment
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'pgbouncer',
'USER': 'user1',
'PASSWORD': 'pass1',
'HOST': '/var/run/postgresql',
'PORT': '6432',
}