Zwrotny serwer proxy to komputer umieszczony w sieci granicznej (znanej również jako strefa zdemilitaryzowana lub podsieć ekranowana), który obsługuje żądania z Internetu i przekazuje je do komputerów w sieci wewnętrznej. Przekazując żądania zwrotny serwer proxy maskuje tożsamość komputerów znajdujących się za zaporą instytucji, chroniąc wewnętrzne komputery przed bezpośrednimi atakami użytkowników Internetu. Na zwrotnym serwerze proxy można zaimplementować dodatkowe funkcje bezpieczeństwa w celu dalszej ochrony sieci wewnętrznej przed użytkownikami zewnętrznymi.
Witrynę serwera ArcGIS Notebook Server można skonfigurować tak, aby używała zwrotnego serwera proxy instytucji. To ustawienie jest opcjonalne. Jeśli instytucja nie używa zwrotnego serwera proxy lub jeśli nie chcesz konfigurować witryny ArcGIS Notebook Server to korzystania z niego, możesz przejść do konfigurowania witryny w portalu.
Dodawanie aplikacji ArcGIS Notebook Server do zwrotnego serwera proxy
Zwrotny serwer proxy instytucji musi zostać skonfigurowany do komunikacji z aplikacją ArcGIS Web Adaptor przez dodanie odpowiednich adresów URL do dyrektyw serwera proxy.
Jeśli na przykład jako zwrotny serwer proxy jest używany serwer Apache, należy dodać adres URL aplikacji ArcGIS Web Adaptor do dyrektyw ProxyPass w pliku konfiguracyjnym serwera internetowego Apache httpd.conf:
ProxyPass /notebook https://notebookserver.domain.com/notebook
ProxyPassReverse /notebook https://notebookserver.domain.com/notebook
Większość serwerów odwrotnego proxy ma konfigurowalny limit czasu połączenia z aplikacją kliencką. Gy upłynie limit czasu połączenia, połączenia z gniazdami internetowymi używane przez serwer ArcGIS Notebook Server do komunikacji z jądrem środowiska Python zostaną rozłączone, a w notatniku zostanie wyświetlone powiadomienie. Jeśli zdarza się to w regularnych odstępach czasu, na przykład co 1, 3 lub 5 minut po ponownym nawiązaniu połączenia z jądrem, należy sprawdzić limity czasu połączeń w ścieżce sieciowej i odpowiednio je zwiększyć.
Konfigurowanie właściwości WebContextURL
Jeśli jest używany zwrotny serwer proxy i adres URL witryny nie kończy się domyślnym ciągiem znakowym /arcgis (tylko małe litery), należy również skonfigurować właściwość ArcGIS Notebook ServerWebContextURL. Pomoże to oprogramowaniu ArcGIS Notebook Server w konstruowaniu poprawnych adresów URL dla zasobów wysyłanych do użytkownika końcowego.
Notatka:
Użyj właściwości WebContextURL, aby skonfigurować adres URL aplikacji ArcGIS Notebook ServerArcGIS Web Adaptor (na przykład: /notebook).
- Zaloguj się do aplikacji ArcGIS Notebook Server Administrator Directory pod adresem https://notebookserver.domain.com:11443/arcgis/admin jako użytkownik z uprawnieniami administratora.
- Kliknij System > Właściwości > Aktualizuj.
- W oknie dialogowym Właściwości wstaw następujący kod JSON, zastępując nim własny adres URL ArcGIS Notebook Server widziany przez użytkowników znajdujących się poza zaporą instytucji:
{ "WebContextURL": "https://notebookserver.domain.com/notebook" }
- Kliknij przycisk Update (Aktualizuj).
- Uruchom ponownie serwer ArcGIS Notebook Server W systemie Windows zrestartuj usługę serwera ArcGIS Server systemu Windows.
Nagłówki zwrotnego serwera proxy i aplikacja ArcGIS Notebook Server
Przy integrowaniu zwrotnego serwera proxy z aplikacją ArcGIS Web Adaptor w nagłówku wysłanym przez zwrotny serwer proxy musi być skonfigurowana następująca właściwość:
X-Forwarded-Host=<FQDN of reverse proxy server>
Jeśli ta właściwość jest skonfigurowana w nagłówku, aplikacja ArcGIS Web Adaptor zwróci do zwrotnego serwera proxy żądania zgodne z adresem URL zwrotnego serwera proxy. Na przykład żądanie do katalogu ArcGIS Notebook Server Services Directory (https://reverseproxy.domain.com/arcgis/rest/services) zostanie zwrócone do klienta jako taki sam adres URL.
Jeśli właściwość nagłówka X-Forwarded-Host nie zostanie skonfigurowana, oprogramowanie ArcGIS Web Adaptor może zwrócić adres URL wewnętrznego komputera, do którego żądanie zostało skierowane, na przykład https://notebookserver.domain.com/arcgis/rest/services zamiast https://reverseproxy.domain.com/arcgis/rest/services. Może to powodować problemy, gdyż aplikacje klienckie nie będą mogły uzyskać dostępu do tego adresu URL (zwykle powoduje to wyświetlenie błędu 404 w przeglądarce). Ponadto aplikacja kliencka uzyska pewne informacje o wewnętrznym komputerze.
Przy rozwiązywaniu problemów z komunikacją między aplikacjami klienckimi i oprogramowaniem ArcGIS Web Adaptor jest zalecane skonfigurowanie właściwości nagłówka X-Forwarded-Host na zwrotnym serwerze proxy, ponieważ jest to częsta przyczyna niepowodzenia komunikacji. Sposób skonfigurowania tego nagłówka zależy od implementacji zwrotnego serwera proxy.
Wskazówki na temat sposobu przekazywania nagłówka oryginalnego hosta zawiera dokumentacja produktu zwrotnego serwera proxy.
Konfiguracja serwera odwrotnego proxy dla wysokodostępnej witryny ArcGIS Notebook Server.
Podczas implementowania serwera odwrotnego proxy, który ma na zapleczu wiele celów, na których działa aplikacja ArcGIS Web Adaptor zarejestrowana w jednej witrynie ArcGIS Notebook Server, należy wziąć pod uwagę dodatkowe informacje.
ArcGIS Notebook Server używa połączeń z gniazdami internetowymi do komunikowania się z jądrem środowiska Python. Te połączenia z gniazdami internetowymi tworzą sesję stanową, która musi być uwzględniona w konfiguracji odwrotnego proxy. Właściwość ta nosi nazwę lepkości sesji i jej osiągnięcie wymaga zastosowania systemu równoważenia obciążenia warstwy 7 (aplikacji).
Odpowiednią lepkość sesji można osiągnąć na serwerze Apache w następujący sposób: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>
Ważne jest także zastosowanie serwera proxy w przypadku bezpiecznych połączeń z gniazdami internetowymi (WSS) tych samych celów na zapleczu:<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>