CentOS上pgAdmin集群部署指南
一、前置准备
在开始部署前,请确保:
- CentOS系统已更新至最新版本(
sudo yum update -y); - 已准备好至少2台服务器(用于pgAdmin多实例部署,实现高可用);
- 每台服务器已安装PostgreSQL数据库(作为pgAdmin管理的后端集群,参考PostgreSQL集群部署文档);
- 确保服务器之间网络互通,防火墙允许相关端口通信(如5432、80/443)。
二、安装pgAdmin
1. 通过YUM安装(推荐)
pgAdmin官方提供了CentOS的YUM仓库,安装步骤如下:
# 添加pgAdmin官方YUM仓库
sudo rpm -i https://download.pgadmin.org/pub/pgadmin/pgadmin4/yum/pgadmin4-redhat.repo
# 安装pgAdmin(选择适合CentOS版本的包,如el7/el8)
sudo yum install -y pgadmin4
# 启动pgAdmin服务并设置开机自启
sudo systemctl start pgadmin4
sudo systemctl enable pgadmin4
2. 验证安装
安装完成后,通过浏览器访问http://<服务器IP>:5050(默认端口5050),若出现pgAdmin登录页面,则说明安装成功。
三、配置pgAdmin高可用集群
1. 部署多个pgAdmin实例
在每台服务器上重复上述安装步骤,确保所有实例运行相同版本的pgAdmin。安装完成后,每个实例会自动创建默认配置文件(位于/var/lib/pgadmin/config_local.py)。
2. 配置负载均衡器(核心组件)
使用Nginx作为负载均衡器,将客户端请求分发到多个pgAdmin实例,提升可用性和性能。
(1)安装Nginx
sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx
(2)配置Nginx反向代理
编辑Nginx配置文件(/etc/nginx/nginx.conf),添加以下内容:
http {
upstream pgadmin_cluster {
server :5050; # 替换为第一台pgAdmin服务器IP
server :5050; # 替换为第二台pgAdmin服务器IP
# 可根据需要添加更多实例
}
server {
listen 80;
server_name pgadmin.yourdomain.com; # 替换为你的域名或IP
location / {
proxy_pass http://pgadmin_cluster;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
保存后重启Nginx:
sudo systemctl restart nginx
3. 配置pgAdmin实例同步
为确保所有pgAdmin实例的用户、服务器配置一致,需启用pgAdmin配置同步:
# 编辑pgAdmin主配置文件(/etc/pgadmin/config_systemd.py)
sudo vim /etc/pgadmin/config_systemd.py
添加以下内容(替换为你的邮件服务器信息):
# 配置邮件服务器(用于发送账户验证邮件)
MAIL_SERVER = 'smtp.yourdomain.com'
MAIL_PORT = 587
MAIL_USE_TLS = True
MAIL_USERNAME = 'your_email@yourdomain.com'
MAIL_PASSWORD = 'your_email_password'
# 配置同步存储(使用数据库存储配置)
STORAGE_TYPE = 'sqlalchemy'
SQLALCHEMY_DATABASE_URI = 'postgresql://pgadmin_user:your_password@/pgadmin'
重启pgAdmin服务使配置生效:
sudo systemctl restart pgadmin4
4. 配置高可用存储(可选但推荐)
为避免单点故障导致数据丢失,建议将pgAdmin的数据目录挂载到高可用文件系统(如GlusterFS、Ceph):
# 示例:使用GlusterFS挂载(需提前部署GlusterFS集群)
sudo yum install -y glusterfs-client
sudo mkdir -p /mnt/pgadmin_data
sudo mount -t glusterfs :/pgadmin_volume /mnt/pgadmin_data
# 将pgAdmin数据目录指向挂载点
sudo sed -i 's|/var/lib/pgadmin|/mnt/pgadmin_data|g' /etc/pgadmin/config_systemd.py
sudo systemctl restart pgadmin4
四、配置PostgreSQL集群连接
pgAdmin的核心功能是管理PostgreSQL数据库集群,需先配置pgAdmin与PostgreSQL集群的连接:
- 登录pgAdmin Web界面(通过Nginx访问的地址);
- 点击左侧“Servers”→右键选择“Create”→“Server”;
- 在“General”标签页输入服务器名称(如“PostgreSQL_Cluster”);
- 在“Connection”标签页填写以下信息:
- Host:PostgreSQL集群的主节点IP地址;
- Port:PostgreSQL监听端口(默认5432);
- Username:PostgreSQL超级用户(如“postgres”);
- Password:超级用户密码;
- 点击“Save”保存配置,若连接成功,左侧“Servers”下会显示该服务器节点。
五、安全加固
1. 配置SSL加密
为避免数据传输被窃取,建议为pgAdmin和PostgreSQL配置SSL:
(1)pgAdmin配置SSL
编辑Nginx配置文件,添加SSL证书:
server {
listen 443 ssl;
server_name pgadmin.yourdomain.com;
ssl_certificate /path/to/your/certificate.crt;
ssl_certificate_key /path/to/your/private.key;
location / {
proxy_pass http://pgadmin_cluster;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
# 重定向HTTP到HTTPS
server {
listen 80;
server_name pgadmin.yourdomain.com;
return 301 https://$host$request_uri;
}
重启Nginx:
sudo systemctl restart nginx
(2)PostgreSQL配置SSL
参考PostgreSQL官方文档配置SSL,生成证书并修改postgresql.conf:
ssl = on
ssl_cert_file = '/path/to/server.crt'
ssl_key_file = '/path/to/server.key'
2. 防火墙配置
允许Nginx(80/443)和PostgreSQL(5432)端口通过防火墙:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --permanent --zone=public --add-port=5432/tcp
sudo firewall-cmd --reload
3. 访问控制
- 限制pgAdmin访问IP:在Nginx配置中添加
allow指令,仅允许可信IP访问; - 设置强密码:确保pgAdmin用户和PostgreSQL用户使用复杂密码(包含大小写字母、数字、特殊字符);
- 定期更新:保持pgAdmin、PostgreSQL及系统软件包为最新版本,修复已知漏洞。
六、监控与维护
- 监控pgAdmin状态:使用
systemctl status pgadmin4查看服务运行状态,通过Nginx的access.log和error.log监控访问情况; - 备份pgAdmin数据:定期备份
/var/lib/pgadmin目录(或高可用存储挂载点),确保数据可恢复; - 监控PostgreSQL集群:使用
pg_stat_replication视图监控主从复制状态,使用repmgr工具监控节点健康状态。
通过以上步骤,即可在CentOS上完成pgAdmin集群部署,实现高可用性和负载均衡,有效管理PostgreSQL数据库集群。
以上就是关于“centos pgadmin集群部署指南”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm