Skip To Content

إعداد خادم وكيل عكسي باستخدام ArcGIS Notebook Server

خادم الوكيل العكسي هو كمبيوتر تم نشره على شبكة محيط الشكل (المعروف أيضًا بمناطق مُجردة أو الشبكة الفرعية) التي تُعالج الطلبات من الإنترنت وإرسالهم إلى الأجهزة داخل الشبكة الداخلية. بإعادة توجيه الطلبات، يخفي خادم الوكيل العكسي هوية الأجهزة الموجودة خلف جدار حماية مؤسستك، مما يحمي الأجهزة الداخلية من الهجوم المباشر من مستخدمي الإنترنت. يُمكن تنفيذ وظائف الأمان الإضافية في خادم الوكيل العكسي لحماية الشبكة الداخلية من المستخدمين الخارجيين.

يمكنك تكوين موقع ArcGIS Notebook Server لاستخدام خادم الوكيل العكسي لمؤسستك. اختياري. إذا كانت مؤسستك لا تستخدم وكيلاً عكسيًا، أو إذا كنت لا تريد تكوين موقع ArcGIS Notebook Server لاستخدامه، يمكنك المتابعة لتكوين موقعك مع بوابة إلكترونية.

أضف ArcGIS Notebook Server إلى خادم الوكيل العكسي

يجب تكوين خادم الوكيل العكسي لمؤسستك للتواصل مع ArcGIS Web Adaptor عن طريق إضافة عناوين URL المقابلة إلى توجيهات الوكيل.

على سبيل المثال، إذا كنت تستخدم Apache كخادم وكيل عكسي، يلزمك إضافة عنوان URL لـ ArcGIS Web Adaptor إلى التوجيهات ProxyPass في ملف تكوين خادم الويب Apache httpd.conf على النحو التالي:

ProxyPass /notebook https://notebookserver.domain.com/notebook
ProxyPassReverse /notebook https://notebookserver.domain.com/notebook

تحتوي معظم خوادم الوكيل العكسي على مهلة اتصال العميل القابلة للتكوين. سيتم فصل اتصالات WebSocket المستخدمة من قبل ArcGIS Notebook ServerArcGIS Notebook Server للتواصل مع Python kernel عند الوصول إلى مهلة الاتصال وسيظهر إشعار داخل دفتر الملاحظات. إذا حدث هذا في فاصل زمني ثابت، على سبيل المثال كل 1 أو 3 أو 5 دقائق بعد إعادة الاتصال بالنواة kernel، فيجب فحص مهلات الاتصال بمسار الشبكة وزيادتها وفقًا لذلك.

تعيين خاصية WebContextURL

إذا كنت تستخدم خادم وكيل عكسيًا وكان عنوان URL لموقعك لا ينتهي بالسلسلة الافتراضية /arcgis (كله بأحرف صغيرة)، يجب عليك أيضًا تعيين الخاصية ArcGIS Notebook Server WebContextURL. يساعد ذلك ArcGIS Notebook Server على إنشاء عناوين URL الصحيحة على الموارد التي يرسلها إلى المستخدم النهائي.

ملاحظة:‏

استخدم الخاصية WebContextURL لتعيين عنوان URL لـ ArcGIS Notebook Server ليطابق عنوان ArcGIS Web Adaptor (مثل /notebook).

افعل ما يلي لتغيير خاصية WebContextURL:

  1. سجّل الدخول إلى دليل مسؤول ArcGIS Notebook Server في https://notebookserver.domain.com:11443/arcgis/admin بصفتك مستخدمًا يتمتع بامتيازات المسؤول.
  2. انقر فوق النظام > الخصائص > تحديث.
  3. في المربع النصي الخصائص، أدخل JSON التالي، واستبدل عنوان URL لـ ArcGIS Notebook Server الخاص بك كما يراه المستخدمون خارج جدار حماية مؤسستك:
    {
       "WebContextURL": "https://notebookserver.domain.com/notebook"
    }
  4. انقر على تحديث.
  5. أعد تشغيل ArcGIS Notebook Server. في نظام التشغيل Linux، نفذ البرنامجين النصيين stopnotebookserver.sh وstartnotebookserver.sh الموجودين في مجلد التثبيت.

عناوين الوكيل العكسي وArcGIS Notebook Server

عند دمج الوكيل العكسي مع ArcGIS Web Adaptor، يجب تعيين الخاصية التالية في العنوان المرسل بواسطة خادم الوكيل العكسي:

X-Forwarded-Host=<FQDN of reverse proxy server>

إذا تم تعيين هذه الخاصية في العنوان، فسيُرجع ArcGIS Web Adaptor الطلبات إلى خادم الوكيل العكسي الذي يتطابق مع عنوان URL لخادم الوكيل العكسي. على سبيل المثال، سيتم إرجاع طلب موجّه إلى دليل الخدمات ArcGIS Notebook Server (https://reverseproxy.domain.com/arcgis/rest/services) إلى العميل كعنوان URL نفسه.

إذا لم يتم تعيين خاصية عنوان X-Forwarded-Host، فقد يُرجع ArcGIS Web Adaptor عنوان URL للجهاز الداخلي الذي تم توجيه الطلب إليه، على سبيل المثال، https://notebookserver.domain.com/arcgis/rest/services بدلاً من https://reverseproxy.domain.com/arcgis/rest/services. ويعد هذا مسببًا للمشاكل حيث لن يتمكن العملاء للوصول إلى عنوان URL هذا (المعروف عمومًا كخطأ مستعرض 404). سيكتسب العميل أيضًا بعض المعرفة بالجهاز الداخلي.

عند استكشاف أخطاء في الاتصال بين العملاء وArcGIS Web Adaptor وإصلاحها، يوصى بتعيين خاصية عنوان X-Forwarded-Host في خادم الوكيل العكسي نظرًا لأن هذا سبب شائع لحدوث حالات فشل الاتصال. تختلف طريقة تعيين هذا العنوان اعتمادًا على تنفيذ الخادم الوكيل العكسي.

للحصول على إرشادات حول كيفية تمرير عنوان المضيف الأصلي، راجع وثائق المنتج لخادم الوكيل العكسي.

تكوين الخادم الوكيل العكسي الخاص بك لموقع ArcGIS Notebook Server متوفر للغاية

عند تنفيذ خادم وكيل عكسي يحتوي على عدة أهداف خلفية يعمل عليها ArcGIS Web Adaptor ومسجلة في موقع ArcGIS Notebook Server واحد، هناك اعتبارات إضافية يجب أن تؤخذ في الاعتبار.

يستخدم ArcGIS Notebook Server اتصالات websocket للتواصل مع نواة Python. تنشئ اتصالات websocket هذه جلسة ذات حالة يجب الحفاظ عليها بواسطة تكوين الوكيل العكسي. يُشار إلى ذلك باسم ثبات الجلسة، ويتطلب موازن تحميل من الطبقة 7 (التطبيق) لتحقيقه.

يمكن تحقيق ثبات الجلسة الصحيح في Apache باستخدام ما يلي:

Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED

<Proxy balancer://web_adaptors_https>
    BalancerMember https://notebook1.domain.com:443 route=notebook1
    BalancerMember https://notebook2.domain.com:443 route=notebook2
    BalancerMember https://notebook3.domain.com:443 route=notebook3

    ProxySet lbmethod=byrequests
    ProxySet stickysession=ROUTEID
</Proxy>

من المهم أيضًا أن تقوم بتوكيل اتصالات Websocket الآمنة (WSS) لنفس أهداف الواجهة الخلفية:

<Proxy balancer://web_adaptors_wss>
    BalancerMember wss://notebook1.domain.com:443 route=notebook1
    BalancerMember wss://notebook2.domain.com:443 route=notebook2
    BalancerMember wss://notebook3.domain.com:443 route=notebook3

    ProxySet lbmethod=byrequests
    ProxySet stickysession=ROUTEID
</Proxy>

مثال: تكوين Apache وTomcat مع ArcGIS Notebook Server

يمكنك تكوين وكيل عكسي مع ArcGIS Notebook Server باستخدام أي برنامج خادم ويب. يصف نموذج سير العمل التالي خطوات إعداد وكيل عكسي باستخدام Apache HTTP Server وApache Tomcat. وهذا مثال على تكوين وكيل عكسي، وليست تعليمات نهائية.

يستخدم نموذج سير العمل هذا البرامج والإصدارات التالية، جميعها مثبتة على الجهاز نفسه مثل ArcGIS Notebook Server:

  • Red Hat Enterprise Linux Server 7.5
  • Apache HTTP Server ، httpd 2.4.6
  • Apache Tomcat 9.0.20 / OpenJDK 1.8.0

يمكن أن توجد مكونات البرامج هذه أيضًا في بنية موزعة مع ArcGIS Notebook Server وApache HTTP Server وApache Tomcat، كلها على أجهزة منفصلة.

تبدأ الخطوات التالية بعد تثبيت ArcGIS Notebook Server و Mirantis Container Runtime وتكوينهما، وتثبيت مثيل ArcGIS Web Adaptor على خادم Java على الويب ولكن مع عدم تكوينه.

  1. قم بتثبيت Tomcat لتشغيله على المنفذ 8080 باستخدام بروتوكول Apache JServ (AJP)، والذي يتم تمكينه افتراضيًا.
  2. نظرًا لعدم تمكين المنفذ 8443 افتراضيًا على Tomcat، قم بتمكين SSL وأضف موصلاً للمنفذ 8443.

    يتضمن ذلك إنشاء شهادة SSL وتحرير ملف تكوين Tomcat لإضافة الموصل. كإحدى أفضل ممارسات الأمان، يجب تمكين الإصدار 1.2 من TLS فقط.

    ...
    sslProtocol="TLS" SSLProtocol="TLSv1.2"
    ...

  3. انشر ملف arcgis.war لـ ArcGIS Web Adaptor (Java Platform) الحالي على Tomcat.

    في هذا المثال، عنوان URL لـ ArcGIS Web Adaptor هو /nbs.

  4. تثبيت Apache HTTP Server .

    في هذا المثال، يُستخدم مدير حزم yum. يتم أيضًا تثبيت إمكانات SSL باستخدام yum.

    yum install httpd -y
    yum install mod_ssl -y

  5. قم بتكوين شهادة SSL لـ Apache HTTP Server في الملف ssl.conf.
  6. عدّل ملف httpd.conf على Apache باستخدام قواعد الوكيل (كما تمت مناقشته في القسم السابق) لاتصالات الوكيل ArcGIS Web Adaptor بمنفذ AJP الخاص بـ Tomcat.

    ProxyPass /nbs ajp://myserver.acme.com:8009/nbs
    ProxyPassReverse /nbs ajp://myserver.acme.com:8009/nbs

  7. في الملف Apache HTTP Server ssl.conf، استخدم قواعد الوكيل لاتصالات SSL ArcGIS Web Adaptor للوكيل بمنفذ AJP الخاص بـ Tomcat. من المهم أيضًا إنشاء طلبات WebSocket للوكيل، والتي تُستخدم بواسطة ArcGIS Notebook Server؛ وإذا لم يتم التعامل مع طلبات WebSocket بشكل صحيح، فلن يتم فتح ArcGIS Notebooks بشكل صحيح.

    SSLProxyEngine On
    # Use RewriteEngine to handle WebSocket connection upgrades
    RewriteEngine On
    RewriteCond %{HTTP:Connection} Upgrade [NC]
    RewriteCond %{HTTP:Upgrade} websocket [NC]
    RewriteRule /(.*) wss://myserver.acme.com:8443/$1 [P,L]
    <Location "/nbs">
        ProxyPreserveHost On
        ProxyPass ajp://myserver.acme.com:8009/nbs
        ProxyPassReverse ajp://myserver.acme.com:8009/nbs
    </Location>

  8. أعد تشغيل خدمة Apache HTTP Server لتنفيذ تغييرات التكوين.
  9. قم بتكوين ArcGIS Web Adaptor مع ArcGIS Notebook Server.