QGIS lexon çdo rrugë që arrijnë ofruesit e tij të dhënave, kështu që një VPN aktiv është vetëm gjysma e konfigurimit. Tuneli i jep desktopit një rrugë dhe një politikë zgjidhjeje emrash; projekti ende ka nevojë për pikën fundore të shërbimit, protokollin e ofruesit dhe kredencialet që shërbimi do të pranojë. Këto janë tre fusha të veçanta, dhe shkrimi i dëgjuesit publik të VPN në një fushë baze të dhënash nuk është asnjë prej tyre. Ky udhëzues ndjek një shtresë PostGIS nga formulari i QGIS deri te një rresht i kthyer dhe emërton kufirin që provon çdo hap.

Filloni nga shtresa, jo nga VPN

Çdo lloj shtrese arrin një lloj tjetër pike fundore. Një shtresë PostGIS hap një lidhje PostgreSQL me host, port, bazë të dhënash dhe rol. Një shtresë WMS ose WFS merr një URL shërbimi dhe më pas analizon një dokument mundësish. Një shapefile në një ndarje rrjeti kërkon vetëm një shteg skedari që sistemi operativ mund ta hapë. Meqenëse janë tre mekanizma të ndryshëm, një projekt bosh nuk ju thotë asgjë derisa ta dini se cilin po korrigjoni.

Pyetni operatorin e GIS për pikën fundore, portin, identitetin e kërkuar dhe politikën e aksesit që zbatohet për llogarinë tuaj. Mbani emrin e hostit të shërbimit saktësisht siç është lëshuar kur vendosja varet nga DNS privat ose nga kontrollet e emrit në certifikatë. Ripërdorimi i një adrese hosti të kopjuar nga lidhja e ruajtur e një përdoruesi tjetër është rruga më e shpejtë drejt një makine që përgjigjet por mban një bazë të dhënash më të vjetër.

Rrugët, burimet e lejuara dhe zgjidhja e emrave u përkasin atyre që drejtojnë VPN-në. Një formular burimi të dhënash nuk mund të instalojë një rrugë që profili i tunelit nuk e ka dërguar kurrë, dhe nuk mund të zgjerojë një politikë portë. Kur hosti zgjidhet dhe porti përgjigjet, ana e rrjetit e problemit ka mbaruar.

Vendosni pikën fundore private që lëshoi operatori

Formulari PostgreSQL në QGIS pasqyron fushat që pret libpq, prandaj plotësojeni në të njëjtën radhë si një lidhje nga rreshti i komandës. Shërbimi dhe hosti marrin makinën e bazës së të dhënave, porti merr dëgjuesin që serveri hap në të vërtetë, dhe baza e të dhënave merr katalogun konkret në vend të vlerës së parazgjedhur të serverit. Ruani fjalëkalimin në një konfigurim vërtetimi dhe jo në skedarin e projektit, që një projekt i përbashkët të mos mbajë kredenciale.

Ndani dy emrat përpara se të shkruani gjë. Emri i portës i përket klientit të VPN dhe emri i bazës së të dhënave i përket QGIS, dhe rrallë janë i njëjti host.

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

Nëse baza e të dhënave ndodhet në një makinë tjetër pas portës, emri në formular duhet të jetë ajo makinë. DNS privat përmes tunelit është ai që e bën emrin të punojë, dhe një projekt që zgjidhet vetëm kur jeni i lidhur sillet saktë dhe nuk bën cache keq.

Mbani modalitetin TLS të bazës së të dhënave të ndarë nga tuneli

SSL në emrin e një produkti VPN përshkruan tunelin, jo sesionin e bazës së të dhënave. QGIS e kalon modalitetin SSL të PostgreSQL te libpq, dhe ai modalitet kontrollon nëse klienti verifikon certifikatën e serverit dhe nëse kontrollon emrin e hostit brenda saj. verify-fullbën të dyja, prandaj është modaliteti që ia vlen të mbahet kur certifikata mban emrin e shërbimit.

Ulja e modalitetit në disable sepse tuneli është tashmë i kriptuar heq kontrollin që serveri i arritur është serveri i kërkuar. Kur verifikimi dështon, shkaku i zakonshëm është mospërputhja e emrit ose mungesa e certifikatës rrënjësore, dhe të dyja mund të rregullohen pa dobësuar lidhjen. Drejtojeni sslrootcert te CA që publikon operatori dhe mbani emrin e hostit në formular identik me emrin në certifikatë.

Një tunel me rrugë private dhe një bazë të dhënash me certifikatë të vlefshme mund të dështojnë përsëri te roli. Kredencialet e aplikacionit janë të ndara nga ato të VPN, dhe një llogari që vërtetohet te porta nuk ka asnjë të drejtë të nënkuptuar në PostgreSQL.

Provoni çdo kufi sipas radhës dhe lexoni dështimin e parë

Punoni nga klienti nga jashtë në një radhë fikse: zgjidhja e emrave, arritshmëria TCP, TLS, vërtetimi dhe më pas vetë pyetja. Hapi i parë që dështon është i vetmi që ia vlen të raportohet, dhe kalimi përpara jep mesazhe gabimi nga një kufi ku nuk keni mbërritur ende. Katër komanda mbulojnë katër hapat e parë.

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

Një përgjigje bosh nga getent është problem zgjidhjeje, jo problem baze të dhënash. Një nc i refuzuar ose i skaduar do të thotë që mungon një rrugë ose një rregull firewall, gjë që korrigjohet nga ana e portës. Një gabim TLS nga psql do të thotë që certifikata ose emri janë të gabuar, ndërsa password authentication failed do të thotë që keni arritur PostgreSQL dhe problemi është kredenciali. Për një shtresë WMS, thirrja curl kthen XML-në e mundësive që QGIS do të analizonte, prandaj një faqe hyrjeje HTML në atë dalje shpjegon menjëherë një shtresë bosh.

Një gabim PostgreSQL është lajm i mirë krahasuar me një skadim kohe. Vërteton që destinacioni u përgjigj, gjë që e zhvendos tiketën nga ekipi i rrjetit te administratori i bazës së të dhënave ose GIS. Mbajtja e këtij dallimi në raport kurse një raund.

Kur projekti hapet me shtresa bosh

Brenda QGIS, kontrolloni burimin e ruajtur të shtresës përpara se të rinjepni gjë. Vetitë e shtresës tregojnë vargun e saktë të lidhjes që ruajti projekti, dhe një zë i dyfishtë lidhjeje me host më të vjetër është një mbetje e zakonshme nga një rrjet zyre i mëparshëm. Ringarkimi i projektit pas rregullimit të një lidhjeje nuk e rilexon gjithmonë ofruesin, prandaj hiqni shtresën dhe shtojeni përsëri nga lidhja e korrigjuar.

Pastaj konfirmoni që konfigurimi i vërtetimit është ai i bashkangjitur shtresës, jo thjesht ai i pranishëm në listë. Një shtresë e ruajtur me një konfigurim tjetër vërtetimi dështon në heshtje në panelin e shfletuesit, ndërsa testi psql i pavarur kalon.

Kur shtresa ngarkohet, ruani projektin me shtigje relative vetëm për skedarët dhe mbani lidhjet e shërbimit të emërtuara sipas pikës së tyre fundore. Personi tjetër që trashëgon projektin mund të thotë se çfarë hosti priste një shtresë e prishur pa hapur një tiketë.

Artikuj të ngjashëm