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 Linux uruchom skrypty stopnotebookserver.sh i startnotebookserver.sh znajdujące się w folderze instalacji.
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>
Przykład: konfigurowanie serwera Apache i Tomcat z aplikacją ArcGIS Notebook Server
Zwrotny serwer proxy można skonfigurować z aplikacją ArcGIS Notebook Server, korzystając z dowolnego oprogramowania serwera internetowego. Poniższa przykładowa procedura wykonywania zadań opisuje etapy konfigurowania zwrotnego serwera proxy z użyciem serwera Apache HTTP Server i Apache Tomcat. Jest to pojedyncza przykładowa konfiguracja zwrotnego proxy, nie konkretne instrukcje.
W tej przykładowej procedurze wykonywania zadań jest używane następujące oprogramowanie w podanych wersjach zainstalowane na tym samym komputerze co aplikacja 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
Te komponenty oprogramowania mogą również znajdować się w architekturze rozproszonej z oprogramowaniem ArcGIS Notebook Server, Apache HTTP Server i Apache Tomcat na oddzielnych komputerach.
Poniższe etapy rozpoczynają się po zainstalowaniu i skonfigurowaniu oprogramowania ArcGIS Notebook Server i Mirantis Container Runtime, gdy instancja aplikacji ArcGIS Web Adaptor została zainstalowana na serwerze internetowym Java, ale nie została skonfigurowana.
- Zainstaluj serwer Tomcat, aby działał na porcie 8080 z użyciem protokołu Apache JServ Protocol (AJP), który jest domyślnie włączony.
- Ponieważ na serwerze Tomcat nie jest domyślnie włączony port 8443, włącz protokół SSL i dodaj łącznik dla portu 8443.
Wiąże się to z wygenerowaniem certyfikatu SSL i edycją pliku konfiguracyjnego serwera Tomcat w celu dodania łącznika. Z uwagi na zalecenia odnośnie do bezpieczeństwa należy włączyć tylko protokół TLS w wersji 1.2.
... sslProtocol="TLS" SSLProtocol="TLSv1.2" ...
- Wdróż plik arcgis.war dla istniejącego oprogramowania ArcGIS Web Adaptor (Java Platform) na serwerze Tomcat.
Na potrzeby tego przykładu adresem URL aplikacji ArcGIS Web Adaptor jest /nbs.
- Zainstaluj serwer Apache HTTP Server.
W tym przykładzie jest używany menedżer pakietów yum. Funkcje SSL są również instalowane za pomocą aplikacji yum.
yum install httpd -y yum install mod_ssl -y
- Skonfiguruj certyfikat SSL serwera Apache HTTP Server w jego pliku ssl.conf.
- Zmodyfikuj plik httpd.conf Apache, korzystając z zasad serwera proxy (omówionych w poprzedniej sekcji), aby przesyłać przez serwer proxy wywołania aplikacji ArcGIS Web Adaptor na porcie AJP serwera Tomcat.
ProxyPass /nbs ajp://myserver.acme.com:8009/nbs ProxyPassReverse /nbs ajp://myserver.acme.com:8009/nbs
- W pliku Apache HTTP Server ssl.conf użyj zasad serwera proxy, aby przesyłać przez ten serwer wywołania SSL aplikacji ArcGIS Web Adaptor na porcie AJP serwera Tomcat. Istotne jest, aby również przesyłać przez serwer proxy żądania mechanizmu WebSocket, które są używane przez aplikację ArcGIS Notebook Server. Jeśli żądania mechanizmu WebSocket nie będą obsługiwane we właściwy sposób, aplikacja ArcGIS Notebooks nie otworzy się prawidłowo.
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>
- Aby zmiany konfiguracji odniosły skutek, uruchom ponownie usługę Apache HTTP Server.
- Skonfiguruj oprogramowanie ArcGIS Web Adaptor z oprogramowaniem ArcGIS Notebook Server.