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 टनल” टैब होता है जो यही काम करता है।
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
सिर्फ़ उसी एक पते के लिए फ़ायरवॉल खोलें और रीस्टार्ट करें:
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 पूरी मशीन के रोज़ाना रिस्टोर पॉइंट जोड़ते हैं।
टिप्पणियाँ
अभी तक कोई टिप्पणी नहीं। पहले बनें।