PostgreSQL inasakinishwa kwa amri moja. Watu wanakosea kwenye ufikiaji wa mbali: wanafungua bandari 5432 kwa ulimwengu mzima, wanaweka nenosiri, kisha wanashangaa kwa nini logs zimejaa majaribio ya kuingia. Mwongozo huu unasakinisha Postgres kwenye Ubuntu 24.04, unaunda hifadhidata, na unaonyesha njia mbili salama za kuunganika kutoka nje.
1. Usakinishaji
apt update && apt install -y postgresql
systemctl status postgresql --no-pager
Kwenye Ubuntu 24.04 hii ni PostgreSQL 16. Kwa chaguo-msingi inasikiliza localhost pekee; iache hivyo isipokuwa una sababu.
2. Unda mtumiaji na hifadhidata
sudo -u postgres psql <<'SQL'
CREATE USER app WITH PASSWORD 'use-a-long-random-password';
CREATE DATABASE appdb OWNER app;
SQL
Programu kwenye seva hiyohiyo zinaunganika kwa postgresql://app:PASSWORD@localhost:5432/appdb.
3. Unganika kutoka laptop yako: handaki la SSH (linapendekezwa)
Hakuna cha kufungua, hakuna cha kusanidi kwenye seva. Handaki linapeleka bandari ya ndani kupitia SSH:
ssh -N -L 5433:localhost:5432 root@203.0.113.10
Kwenye mpango wa NAT ongeza bandari yako binafsi ya SSH kutoka kwenye paneli:
ssh -N -p 20123 -L 5433:localhost:5432 root@your-nat-host
Wakati handaki liko wazi, elekeza mteja wako wa hifadhidata kwenye localhost:5433. SSH inasimba kila kitu na bandari 5432 inabaki imefungwa kwa intaneti. Zana za picha kama DBeaver na pgAdmin zina kichupo cha «SSH tunnel» kinachofanya jambo hilohilo.
4. Ufikiaji wa moja kwa moja kwa seva nyingine (orodha ya ruhusa)
Ikiwa seva ya programu iliyo mahali pengine inahitaji kuunganika moja kwa moja, ruhusu IP yake pekee. Hili linahitaji seva ya hifadhidata iwe kwenye mpango wenye dedicated IP, kwa sababu mipango ya NAT haikubali muunganisho unaoingia isipokuwa SSH.
Kwenye /etc/postgresql/16/main/postgresql.conf:
listen_addresses = '*'
Mwishoni mwa /etc/postgresql/16/main/pg_hba.conf:
hostssl appdb app 198.51.100.20/32 scram-sha-256
Fungua firewall kwa anwani hiyo moja tu na uwashe upya:
ufw allow from 198.51.100.20 to any port 5432 proto tcp
systemctl restart postgresql
hostssl inalazimisha muunganisho uliosimbwa; kifurushi cha Ubuntu kinakuja na cheti self-signed, kwa hivyo wateja wanapaswa kuunganika kwa sslmode=require.
5. Mipangilio ya kuanzia ya busara
Kwa seva yenye RAM ya 2 GB, kwenye postgresql.conf:
shared_buffers = 512MB
effective_cache_size = 1536MB
work_mem = 8MB
Washa upya baada ya kubadilisha. Kwa programu nyingi ndogo hiyo inatosha; rekebisha kwa undani baada ya kuona maswali halisi.
6. Nakala za akiba
Dump kila usiku, inayohifadhiwa kwa wiki moja:
mkdir -p /var/backups/pg && chown postgres /var/backups/pg
cat > /etc/cron.d/pg-backup <<'EOF'
30 3 * * * postgres pg_dump -Fc appdb > /var/backups/pg/appdb-$(date +\%u).dump
EOF
-Fc inaunda dump iliyobanwa inayorejeshwa kwa pg_restore. Nakili dumps nje ya seva pia; Managed Backups zinaongeza pointi za kurejesha za kila siku za mashine nzima.
Maoni
Bado hakuna maoni. Kuwa wa kwanza.