This commit is contained in:
2025-03-17 09:41:15 +08:00
parent 0d07daa655
commit 5c5b31db87
5 changed files with 70 additions and 5 deletions

View File

@@ -101,14 +101,30 @@ PROD_DATABASES = {
"NAME": os.getenv("POSTGRES_DB"),
"USER": os.getenv("POSTGRES_USER"),
"PASSWORD": os.getenv("POSTGRES_PASSWORD"),
"HOST": os.getenv("POSTGRES_HOST"),
"HOST": os.getenv("POSTGRES_HOST", "pgbouncer"),
"PORT": "5432",
# 由于使用了 PgBouncer这里不需要保持长连接
"CONN_MAX_AGE": 0,
"OPTIONS": {
"application_name": "webpreview", # 便于在数据库中识别应用
"sslmode": "disable", # PgBouncer 不支持 SSL
},
},
}
PROD_CACHES = {
"default": {
"BACKEND": "django.core.cache.backends.db.DatabaseCache",
"LOCATION": "webpreview_api_cache",
"BACKEND": "django.core.cache.backends.redis.RedisCache",
"LOCATION": os.getenv("REDIS_URL", "redis://webpreview-redis:6379/1"),
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"CONNECTION_POOL_KWARGS": {"max_connections": 50},
"SOCKET_CONNECT_TIMEOUT": 5, # 连接超时时间
"SOCKET_TIMEOUT": 5, # 读写超时时间
"RETRY_ON_TIMEOUT": True, # 超时时重试
"MAX_CONNECTIONS": 1000, # 连接池最大连接数
"HEALTH_CHECK_INTERVAL": 30, # 健康检查间隔
},
}
}
@@ -116,7 +132,12 @@ if DEBUG:
DATABASES = DEV_DATABASES
else:
DATABASES = PROD_DATABASES
# 使用 Redis 作为会话存储
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"
# 设置会话过期时间24小时
SESSION_COOKIE_AGE = 86400
# 配置缓存
CACHES = PROD_CACHES
# Password validation