QGIS-i VPN arxasında PostGIS-ə qoşun: addım-addım
QGIS-i VPN arxasındakı PostGIS və ya WMS-ə yönləndirin: tuneli xidmət son nöqtəsindən ayırın, verify-full TLS saxlayın və hər sərhədi sıra ilə yoxlayın.
QGIS məlumat provayderlərinin çata bildiyi istənilən yolu oxuyur, yəni işlək VPN quraşdırmanın yalnız yarısıdır. Tunel masaüstünə marşrut və həlledici siyasəti verir; layihəyə hələ də xidmətin son nöqtəsi, provayder protokolu və xidmətin qəbul edəcəyi etimadnamələr lazımdır. Bunlar üç ayrı girişdir və VPN-in açıq dinləyicisini verilənlər bazası sahəsinə yazmaq bunlardan heç biri deyil. Bu bələdçi bir PostGIS qatını QGIS formasından qaytarılan sətrimə qədər izləyir və hər addımın sübut etdiyi sərhədi adlandırır.
VPN-dən deyil, qatdan başlayın
Hər qat növü fərqli son nöqtəyə çatır. PostGIS qatı host, port, verilənlər bazası və rol ilə PostgreSQL bağlantısı açır. WMS və ya WFS qatı xidmət URL-i alır və sonra imkanlar sənədini təhlil edir. Şəbəkə paylaşımındakı shapefile faylı isə yalnız əməliyyat sisteminin aça bildiyi fayl yoluna ehtiyac duyur. Bunlar üç fərqli mexanizm olduğu üçün boş layihə hansını düzəltdiyinizi bilməyincə sizə heç nə demir.
GIS operatorundan son nöqtəni, portu, tələb olunan kimliyi və hesabınıza tətbiq olunan giriş siyasətini soruşun. Yerləşdirmə özəl DNS-dən və ya sertifikat adı yoxlamalarından asılı olduqda xidmət host adını verildiyi kimi saxlayın. Başqa istifadəçinin saxlanmış bağlantısından kopyalanmış host ünvanını təkrar istifadə etmək cavab verən, lakin köhnə verilənlər bazası saxlayan maşına çatmağın ən sürətli yoludur.
Marşrutlar, icazə verilən resurslar və ad həlli VPN-i idarə edənlərə aiddir. Məlumat mənbəyi forması tunel profilinin heç vaxt göndərmədiyi marşrutu quraşdıra bilməz və şlüz siyasətini genişləndirə bilməz. Host həll olunduqda və port cavab verdikdə problemin şəbəkə tərəfi bitir.
Operatorun verdiyi özəl son nöqtəni daxil edin
QGIS-dəki PostgreSQL forması libpq-nun gözlədiyi sahələri əks etdirir, ona görə onu əmr sətri bağlantısının izlədiyi sıra ilə doldurun. Xidmət və host verilənlər bazası maşınını alır, port serverin həqiqətən açdığı dinləyicini alır, verilənlər bazası isə serverin standartı yerinə konkret kataloqu alır. Parolu layihə faylında deyil, autentifikasiya konfiqurasiyasında saxlayın ki, paylaşılan layihə etimadnamə daşımasın.
Heç nə yazmazdan əvvəl iki adı ayırın. Şlüz adı VPN müştərisinə, verilənlər bazası adı isə QGIS-ə aiddir və onlar nadir hallarda eyni hostdur.
VPN gateway: vpn.gis.lab.example (profile only, not a data source)
Database host: db.gis.lab.example:5432 (PostGIS service)
Database name: gis_prod
TLS mode: verify-full
Verilənlər bazası şlüzün arxasındakı başqa maşındadırsa, formadakı ad həmin maşın olmalıdır. Tunel vasitəsilə özəl DNS adı işlək edən şeydir və yalnız qoşulma zamanı həll olunan layihə pis keşləmə deyil, düzgün davranır.
Verilənlər bazasının TLS rejimini tuneldən ayrı saxlayın
VPN məhsulunun adındakı SSL tuneli təsvir edir, verilənlər bazası sessiyasını yox. QGIS PostgreSQL SSL rejimini libpq-ya ötürür və bu rejim müştərinin server sertifikatını yoxlayıb-yoxlamadığını və içindəki host adını yoxlayıb-yoxlamadığını idarə edir. verify-fullhər ikisini edir, buna görə sertifikat xidmət adını daşıyanda saxlanmağa dəyər rejim budur.
Rejimi disable səviyyəsinə endirmək, tunel artıq şifrələndiyi üçün, çatdığınız serverin soruşduğunuz server olduğunu yoxlamağı aradan qaldırır. Yoxlama uğursuz olduqda adi səbəb ad uyğunsuzluğu və ya çatışmayan kök sertifikatdır və hər ikisi bağlantını zəiflətmədən düzəldilə bilər. sslrootcert göstəricisini operatorun yayımladığı CA-ya yönəldin və formadakı host adını sertifikatdakı adla eyni saxlayın.
Şəxsi marşrutu olan tunel və etibarlı sertifikatı olan verilənlər bazası yenə də rol üzündən uğursuz ola bilər. Tətbiq etimadnamələri VPN etimadnamələrindən ayrıdır və şlüzə autentifikasiya olunan hesabın PostgreSQL-də heç bir zımni hüququ yoxdur.
Hər sərhədi sıra ilə yoxlayın və ilk uğursuzluğu oxuyun
Müştəridən xaricə sabit sıra ilə işləyin: ad həlli, TCP çatımlılığı, TLS, autentifikasiya, sonra sorğunun özü. Uğursuz olan ilk addım bildirməyə dəyər yeganə addımdır və irəli atlamaq hələ çatmadığınız sərhəddən gələn xəta mesajları yaradır. Dörd əmr ilk dörd addımı əhatə edir.
getent hosts db.gis.lab.example
nc -vz db.gis.lab.example 5432
psql "host=db.gis.lab.example port=5432 dbname=gis_prod sslmode=verify-full" -c 'select 1'
curl -sS 'https://wms.gis.lab.example/ows?service=WMS&request=GetCapabilities' | head -c 200
Çıxışı boş olan getent həll problemi deməkdir, verilənlər bazası problemi deyil. Rədd edilən və ya vaxtı bitən nc marşrutun və ya firewall qaydasının çatışmadığını bildirir, bu da şlüz tərəfində düzəlişdir. psql xətası sertifikatın və ya adın səhv olduğunu göstərir, halbuki password authentication failed PostgreSQL-ə çatdığınızı və problemin etimadnamədə olduğunu bildirir. WMS qatı üçün curl çağırışı QGIS-in təhlil edəcəyi imkanlar XML-ni qaytarır, ona görə bu çıxışdakı HTML giriş səhifəsi boş qatı dərhal izah edir.
PostgreSQL xətası fasilə ilə müqayisədə yaxşı xəbərdir. Təyinatın cavab verdiyini sübut edir və bu, bileti şəbəkə komandasından verilənlər bazası və ya GIS administratoruna keçirir. Bu fərqi hesabatda saxlamaq bir gediş-gəlişə qənaət edir.
Layihə boş qatlarla açıldıqda
QGIS daxilində hər hansı şeyi yenidən daxil etməzdən əvvəl qatın saxlanmış mənbəyini yoxlayın. Qat xassələri layihənin saxladığı dəqiq bağlantı sətrini göstərir və köhnə hostlu təkrar bağlantı girişi əvvəlki ofis şəbəkəsindən qalan adi haldır. Bağlantı düzəldildikdən sonra layihəni yenidən yükləmək provayderi həmişə yenidən oxumur, ona görə qatı silin və düzəldilmiş bağlantıdan yenidən əlavə edin.
Sonra autentifikasiya konfiqurasiyasının sadəcə siyahıda olmadığını, qata bağlı olanın o olduğunu təsdiqləyin. Fərqli autentifikasiya konfiqurasiyası ilə saxlanmış qat brauzer panelində səssizcə uğursuz olur, halbuki ayrıca psql testi keçir.
Qat yükləndikdə layihəni fayllar üçün yalnız nisbi yollarla saxlayın və xidmət bağlantılarını son nöqtələrinin adı ilə adlandırın. Layihəni miras alan növbəti şəxs o zaman bilet açmadan hansı hostun pozulmuş qat tərəfindən gözlənildiyini deyə bilər.