−25%

Windows-ის წლიურ გადახდაზე, 31 ოქტომბრამდე. ტარიფებზე

EQVPS

როგორ დავაყენოთ PostgreSQL VPS-ზე და უსაფრთხოდ დავუკავშირდეთ

დააყენეთ PostgreSQL 16 Ubuntu-ზე, შექმენით ბაზა და მომხმარებელი და დისტანციურად დაუკავშირდით 5432 პორტის ინტერნეტისთვის გახსნის გარეშე: SSH გვირაბით ან ნებართვების სიით.

PostgreSQL ერთი ბრძანებით დგება. ადამიანები დისტანციურ წვდომაში ცდებიან: 5432 პორტს მთელი სამყაროსთვის ხსნიან, პაროლს აყენებენ და შემდეგ უკვირთ, რატომ არის ჟურნალები შესვლის მცდელობებით სავსე. ეს გზამკვლევი Postgres-ს Ubuntu 24.04-ზე აყენებს, ქმნის ბაზას და აჩვენებს გარედან დაკავშირების ორ უსაფრთხო გზას.

1. ინსტალაცია

apt update && apt install -y postgresql
systemctl status postgresql --no-pager

Ubuntu 24.04-ზე ეს PostgreSQL 16-ია. ნაგულისხმევად ის მხოლოდ localhost-ს უსმენს; ასე დატოვეთ, თუ მიზეზი არ გაქვთ.

2. შექმენით მომხმარებელი და ბაზა

sudo -u postgres psql <<'SQL'
CREATE USER app WITH PASSWORD 'use-a-long-random-password';
CREATE DATABASE appdb OWNER app;
SQL

იმავე სერვერის აპები postgresql://app:PASSWORD@localhost:5432/appdb-ით უკავშირდებიან.

3. დაუკავშირდით ლეპტოპიდან: SSH გვირაბი (რეკომენდებული)

გასახსნელი არაფერია და სერვერზე დასაკონფიგურირებელიც არაფერი. გვირაბი ლოკალურ პორტს SSH-ით გადაამისამართებს:

ssh -N -L 5433:localhost:5432 root@203.0.113.10

NAT ტარიფზე დაამატეთ პანელიდან თქვენი პერსონალური SSH პორტი:

ssh -N -p 20123 -L 5433:localhost:5432 root@your-nat-host

სანამ გვირაბი ღიაა, მიმართეთ ბაზის კლიენტი localhost:5433-ზე. SSH ყველაფერს შიფრავს და 5432 პორტი ინტერნეტისთვის დახურული რჩება. გრაფიკულ ინსტრუმენტებს, როგორიცაა DBeaver და pgAdmin, აქვთ «SSH tunnel» ჩანართი, რომელიც იმავეს აკეთებს.

4. პირდაპირი წვდომა სხვა სერვერისთვის (ნებართვების სია)

თუ სხვაგან მდებარე აპის სერვერს პირდაპირ დაკავშირება სჭირდება, ნება მხოლოდ მის IP-ს მიეცით. ეს მოითხოვს, რომ ბაზის სერვერი გამოყოფილი IP-ის ტარიფზე იყოს, რადგან NAT ტარიფები SSH-ის გარდა შემომავალ კავშირებს არ იღებენ.

/etc/postgresql/16/main/postgresql.conf-ში:

listen_addresses = '*'

/etc/postgresql/16/main/pg_hba.conf-ის ბოლოს:

hostssl  appdb  app  198.51.100.20/32  scram-sha-256

გახსენით firewall მხოლოდ ამ ერთი მისამართისთვის და გადატვირთეთ:

ufw allow from 198.51.100.20 to any port 5432 proto tcp
systemctl restart postgresql

hostssl დაშიფრულ კავშირებს ავალდებულებს; Ubuntu-ს პაკეტს თან ახლავს self-signed სერტიფიკატი, ამიტომ კლიენტებმა sslmode=require-ით უნდა დაუკავშირდნენ.

5. გონივრული საწყისი პარამეტრები

2 GB RAM-ის სერვერისთვის, postgresql.conf-ში:

shared_buffers = 512MB
effective_cache_size = 1536MB
work_mem = 8MB

ცვლილების შემდეგ გადატვირთეთ. პატარა აპების უმეტესობისთვის ეს საკმარისია; ზუსტი რეგულირება რეალური მოთხოვნების ნახვის შემდეგ გააკეთეთ.

6. სარეზერვო ასლები

დამპი ყოველ ღამე, ინახება ერთი კვირა:

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 ქმნის შეკუმშულ დამპს, რომელიც pg_restore-ით აღდგება. დამპები სერვერის გარეთაც დააკოპირეთ; Managed Backups მთელი მანქანის ყოველდღიურ აღდგენის წერტილებს ამატებს.

დაკავშირებული

ხდკ

უნდა გავხსნა 5432 პორტი ინტერნეტისთვის?

სჯობს, არა. ბაზის ღია პორტები მუდმივ სკანირებასა და პაროლის შერჩევის შეტევებს ექვემდებარება. დაუკავშირდით SSH გვირაბით, ან თუ აპის სერვერს პირდაპირ დაკავშირება სჭირდება, მხოლოდ მის IP-ს მიეცით ნება, როგორც pg_hba.conf-ში, ისე firewall-ში.

შემიძლია PostgreSQL-ის გამოყენება NAT ტარიფზე?

კი. იმავე სერვერის აპები ლოკალურად უკავშირდებიან, თქვენ კი ბაზას ლეპტოპიდან SSH გვირაბით წვდებით თქვენს პერსონალურ SSH პორტზე. რასაც NAT ტარიფი ვერ აკეთებს, ესაა სხვა სერვერებიდან 5432-ზე პირდაპირი შემომავალი კავშირების მიღება.

რამდენი RAM სჭირდება PostgreSQL-ს?

ის რამდენიმე ასეულ მეგაბაიტზე მუშაობს და ყველაფერს, რასაც მისცემთ, ქეშად იყენებს. გავრცელებული საწყისი წერტილია shared_buffers-ის დაყენება RAM-ის დაახლოებით 25%-ზე. პატარა აპის ბაზისთვის 2 GB RAM-ის სერვერი საკმარისზე მეტია.

როგორ შევქმნა ბაზის სარეზერვო ასლი?

გამოიყენეთ pg_dump მორგებულ ფორმატში ('pg_dump -Fc') და გაუშვით cron-იდან. შეინახეთ ასლები სერვერის გარეთაც. Managed Backups მთელი სერვერის ყოველდღიურ აღდგენის წერტილებს ამატებს.

PostgreSQL-ის რომელ ვერსიას მივიღებ?

Ubuntu 24.04 მოდის PostgreSQL 16-ით, Debian 12 კი 15-ით. უფრო ახალი ძირითადი ვერსიისთვის დაამატეთ PostgreSQL-ის ოფიციალური apt რეპოზიტორია (apt.postgresql.org).

კომენტარები

ჯერ არ არის კომენტარები. იყავით პირველი.

დატოვეთ კომენტარი

კომენტარები მოდერირდება გამოჩენამდე.