−25%

Windows کی سالانہ ادائیگی پر، 31 اکتوبر تک۔ پلانز دیکھیں

EQVPS

VPS پر PostgreSQL کیسے انسٹال کریں اور محفوظ طریقے سے جڑیں

Ubuntu پر PostgreSQL 16 انسٹال کریں، ڈیٹا بیس اور صارف بنائیں، اور پورٹ 5432 کو انٹرنیٹ پر کھولے بغیر دور سے جڑیں: SSH ٹنل یا اجازت فہرست کے ذریعے۔

PostgreSQL ایک کمانڈ میں انسٹال ہوتا ہے۔ لوگ غلطی ریموٹ رسائی میں کرتے ہیں: پورٹ 5432 پوری دنیا کے لیے کھول دیتے ہیں، پاس ورڈ لگاتے ہیں، پھر حیران ہوتے ہیں کہ لاگز لاگ اِن کی کوششوں سے کیوں بھرے ہیں۔ یہ گائیڈ Ubuntu 24.04 پر Postgres انسٹال کرتی ہے، ایک ڈیٹا بیس بناتی ہے، اور باہر سے جڑنے کے دو محفوظ طریقے دکھاتی ہے۔

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 اجازت دیں۔ اس کے لیے ڈیٹا بیس سرور کا dedicated 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

فائر وال صرف اسی ایک ایڈریس کے لیے کھولیں اور ری اسٹارٹ کریں:

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 اور فائر وال دونوں میں، اجازت دیں۔

کیا NAT پلان پر PostgreSQL استعمال کر سکتا ہوں؟

جی ہاں۔ اسی سرور کی ایپس مقامی طور پر جڑتی ہیں، اور آپ اپنے ذاتی SSH پورٹ پر SSH ٹنل کے ذریعے لیپ ٹاپ سے ڈیٹا بیس تک پہنچتے ہیں۔ NAT پلان جو نہیں کر سکتا وہ ہے دوسرے سرورز سے 5432 پر براہ راست آنے والے کنکشنز قبول کرنا۔

PostgreSQL کو کتنی RAM چاہیے؟

یہ چند سو میگابائٹ پر چلتا ہے اور جو دیں اسے کیش کے طور پر استعمال کرتا ہے۔ ایک عام نقطہ آغاز shared_buffers کو RAM کا تقریباً 25% رکھنا ہے۔ چھوٹی ایپ کے ڈیٹا بیس کے لیے 2 GB RAM والا سرور کافی سے زیادہ ہے۔

ڈیٹا بیس کا بیک اپ کیسے لوں؟

کسٹم فارمیٹ ('pg_dump -Fc') میں pg_dump استعمال کریں اور اسے cron سے چلائیں۔ سرور سے باہر بھی کاپیاں رکھیں۔ Managed Backups پورے سرور کے روزانہ ریسٹور پوائنٹس شامل کرتے ہیں۔

مجھے PostgreSQL کا کون سا ورژن ملے گا؟

Ubuntu 24.04 کے ساتھ PostgreSQL 16 آتا ہے، اور Debian 12 کے ساتھ 15۔ نئے بڑے ورژن کے لیے سرکاری PostgreSQL apt ریپوزٹری (apt.postgresql.org) شامل کریں۔

تبصرے

ابھی کوئی تبصرہ نہیں۔ پہلے بنیں۔

ایک تبصرہ چھوڑیں

تبصرے ظاہر ہونے سے پہلے moderate کیے جاتے ہیں۔