GeoServer او PostGIS: مهم VPN لاره د سرور لاره ده
ستاسو لیپ ټاپ د GeoServer ته رسېدل هېڅ نه وايي چې GeoServer د PostGIS ته رسېږي که نه. دوه سرچینې، د کیش حد او د معلوماتو زېرمې خپله سرچینه پرتله کړئ.
تاسو په QGIS کې طبقه خلاصوئ او هغه رسمېږي. په هماغه VPN کې یو همکار د هماغې طبقې لپاره تېروتنه ترلاسه کوي. یو څوک دې پایلې ته رسېږي چې VPN خراب دی، او بل ساعت د معلوماتو یوه اډه لېږدولو یا داسې پورټ پرانیستلو ته تېرېږي چې هېڅکله یې هم د دې دواړو اړتیا نه وه. د ډیسک ټاپ غوښتنه او هغه پوښتنه چې GeoServer د PostGIS څخه کوي، له بېلابېلو ماشینونو، په بېلابېلو شبکوي نومونو کې، په بېلابېلو اسنادو سره وځي. د دې دوو لارو جلا کول د تشخیص ډېره برخه ده.
دوه اړیکې، دوه سرچینې
QGIS -> client's permitted path (often the VPN) -> GeoServer listener
GeoServer -> server's permitted path -> PostGIS listener
دوهم غشی د لومړي کمپیوټر تونل نه میراث اخلي. په کانټینر کې GeoServer د کانټینر شبکه یی سټیک لري، نه د کوربه، او په پلې شبکې کې کانټینر کولی شي داسې معلوماتي اډې ته ورسیږي چې کوربه ورته نه رسېږي، یا برعکس. نو هماغه کارن کولی شي په یوه ناسته کې بریالی او ناکام دواړه وي، پرته له دې چې ځواب له کیش څخه راغلی وي که له تازه پوښتنې.
| What you tested | What it proves |
|---|---|
Portal page or GetCapabilities | HTTP reachability to GeoServer only |
| A tile served from cache | nothing about the database |
GetMap for an uncached layer | a datastore query had to happen |
هغه ګام ومومئ چې واقعاً ناکام شو
د خدمت په کچه رد، د انځور هغه غوښتنه چې خپلې معلوماتي زېرمې ته نه رسېږي، او په یوه طبقه کې د اجازې ستونزه په براوزر ټب کې ورته ښکاري او په سرور لاګ کې بشپړ توپیر لري. ځانګړې عملیه وغواړئ، بیا د هماغه وخت نښې لپاره د سرور خپله پېښه ولولئ.
curl -s -o /dev/null -w '%{http_code}\n' \
"https://gis.example.com/geoserver/wms?service=WMS&version=1.3.0&request=GetCapabilities"
curl -s -o /tmp/tile.png -w '%{http_code} %{size_download}\n' \
"https://gis.example.com/geoserver/wms?service=WMS&version=1.3.0&request=GetMap&layers=corp:parcels&bbox=-13650000,4500000,-13600000,4550000&width=256&height=256&srs=EPSG:3857&format=image/png"
د دوهمې غوښتنې 200 د باوري انځور سره ثابتوي چې معلوماتي زېرمې ځواب ورکړ. د خدمت استثنا سند سره 200 ثابتوي چې نه یې ورکړ، او د استثنا متن معمولاً د پېرودونکي پرځای زېرمه نوموي.
معلوماتي زېرمه د سرور له خوا ولولئ
د GeoServer PostGIS حواله هغه څه لیستوي چې زېرمې ته اړتیا ده: کوربه، پورټ، معلوماتي اډه او اسناد. دا ټول هغه اړیکه بیانوي چې GeoServer خلاصوي. له دې هېڅ د ډیسک ټاپ پېرودونکي ننوتل نه بیانوي. دا څلور ساحې د سرور د شبکې سیاق په اړه بیان وګڼئ، او «د دوی په خوا کار کوي» ټکټونو ټوله طبقه د حل وړ کیږي.
همدې لپاره localhost په معلوماتي زېرمه کې دومره عامه تېروتنه ده. دا د خود GeoServer بهیر شبکه یی سیاق مانا لري. که GeoServer په Docker کې ځي او PostGIS په کوربه وي، localhost د کانټینر دننه اشاره کوي او هېڅ نه مومي، او هېڅ VPN ترتیب دا نه بدلوي.
په سرور، لار، اورېدونکی او د تصدیق پالیسي په همدې ترتیب وګورئ. د PostgreSQL کوربه پر بنسټ تصدیق هغه سرچینه پته سره سمون خوري چې ویني، کومه چې ګیټوې بدلولی شي، نو په HBA فایل کې د پېرودونکي VPN حوض ورزیاتول په سرور خوا کې اړیکه کمزورې سمون کوي. هغسې وازموئ لکه سرور چې کوي: هماغه کوربه، هماغه پورټ، هماغه کارن. که هغه ازموینه بریالۍ شي او GeoServer لا ناکام وي، توپیر د بهیر په سیاق کې دی نه په معلوماتي اډه کې.
ip route get 10.20.5.11
ss -tnp | grep 5432
psql "host=10.20.5.11 dbname=gis user=geoserver" -c 'select 1'
حوضونه او کیشونه حالت له بدلونونو سره ساتي
د معلوماتي زېرمې د اړیکو حوضونه ساکټونه خلاص ساتي. هغه تونل چې د حوض له جوړېدو یو ساعت وروسته راغی، ضرور حوض ته نوې لار نه ورکوي، او بېکاره اړیکه کولی شي په مړه لار کې پاتې شي تر څو چې تصدیق یا وخت حد هغه وتړي. د نصب شوې زېرمې د تصدیق امستنې وګورئ پرځای دې چې بیا رغېدنه فرض کړئ، او د ټول خدمت بیا پیلولو هڅې څخه ډډه وکړئ تر څو چې ونه پوهېږئ کومه طبقه ناکامه شوه.
د ټایل کیشونه د دې ستونزې د آینې انځور جوړوي: دوی کولی شي د معلوماتي اډې د اړیکې له پرې کېدو ډېر وروسته هم سم ښکارېدونکی نقشه وړاندې کړي. کیش پاکول تر څو «وګورو چې مرسته کوي که نه» یوازینی ثبوت ورکوي چې تاسو ته به ویلي وای کومه لار ژوندې وه.
دواړه سرچینې په نوم یادې کړئ او وسپارئ
هغه تفصیل چې ژر سمون مومي دوه شیان نوموي: هغه پېرودونکې غوښتنه چې GeoServer ته ورسېده، او هغه شاته عملیه چې GeoServer نشو کولی بشپړه کړي. د دواړو سره سم مالک کولی شي هغه لار ورغوي چې ناکامه شوه. یوازې د لومړي سره طبیعي سمون دا دی چې معلوماتي اډه عامه کړو، او دا ټکټ په لا بدې ستونزې جوړولو حل کوي.
طبقه، د ځواب کوډ، د سرور خوا استثنا او هغه کانټینر یا کوربه چې دا یې جوړ کړ، ولیکئ. دا څلور کرښې دي، او ابهام بشپړه له منځه وړي.