Skip To Content

ArcGIS Notebook Server를 사용하여 역방향 프록시 서버 설정

역방향 프록시 서버는 경계 네트워크(비무장지대[DMZ] 또는 스크린된 서브넷이라고도 함) 내에서 배포되는 컴퓨터로, 인터넷에서 요청을 처리하고 이를 내부 네트워크에 있는 머신으로 전달합니다. 요청을 전달함으로써 역방향 프록시 서버는 기관의 방화벽이 설정된 머신의 ID를 마스크하므로 인터넷 사용자의 직접 공격으로부터 내부 머신을 보호합니다. 추가 보안 기능이 역방향 프록시 서버에서 구현되어 외부 사용자로부터 내부 네트워크를 추가로 보호할 수 있습니다.

기관의 역방향 프록시 서버를 사용하도록 ArcGIS Notebook Server 사이트를 구성할 수 있습니다. 이 설정은 선택 사항입니다. 기관에서 역방향 프록시를 사용하지 않거나 이를 사용하도록 ArcGIS Notebook Server 사이트를 구성하지 않으려는 경우 포털을 사용하여 사이트 구성을 진행할 수 있습니다.

역방향 프록시 서버에 ArcGIS Notebook Server 추가

프록시 지시문에 해당 URL을 추가하여 ArcGIS Web Adaptor와 통신하도록 기관의 역방향 프록시 서버를 구성해야 합니다.

예를 들어 Apache를 역방향 프록시 서버로 사용하는 경우 다음과 같이 httpd.conf Apache 웹서버 구성 파일의 ProxyPass 지시문에 ArcGIS Web Adaptor URL을 추가해야 합니다.

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

대부분의 역방향 프록시 서버에는 구성 가능한 클라이언트 연결 시간 제한이 있습니다. ArcGIS Notebook Server가 Python 커널과 통신하는 데 사용하는 websocket 연결은 연결 시간 제한에 도달하면 오프라인 상태가 되고 Notebook에 알림이 표시됩니다. 이러한 상황이 일정한 간격(예시: 커널에 다시 연결한 후 1, 3, 5분마다)으로 발생하는 경우 네트워크 경로에 대한 연결 시간 제한을 조사한 후 늘려야 합니다.

WebContextURL 속성 설정

역방향 프록시 서버를 사용 중이고 사이트 URL이 기본 문자열 /arcgis(모두 소문자)로 끝나지 않는 경우 ArcGIS Notebook Server WebContextURL 등록정보도 설정해야 합니다. 이렇게 하면 ArcGIS Notebook Server가 최종 사용자에게 보내는 리소스에서 올바른 URL을 구성할 수 있습니다.

비고:

WebContextURL 등록정보를 사용하여 ArcGIS Web AdaptorArcGIS Notebook Server URL(예시: /notebook)과 일치하도록 설정합니다.

WebContextURL 등록정보를 변경하려면 다음을 수행합니다.

  1. https://notebookserver.domain.com:11443/arcgis/admin에서 관리자 권한이 있는 사용자로 ArcGIS Notebook Server 관리자 디렉터리에 로그인합니다.
  2. 시스템 > 등록정보 > 업데이트를 클릭합니다.
  3. 등록정보 텍스트 상자에 기관의 방화벽 외부에 있는 사용자에게 표시되는 고유 ArcGIS Notebook Server URL로 대체되는 다음 JSON을 삽입합니다.
    {
       "WebContextURL": "https://notebookserver.domain.com/notebook"
    }
  4. 업데이트를 클릭합니다.
  5. ArcGIS Notebook Server를 다시 시작합니다. Windows에서는 ArcGIS Server Windows 서비스를 다시 시작합니다.

역방향 프록시 헤더 및 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://reverseproxy.domain.com/arcgis/rest/services 대신 https://notebookserver.domain.com/arcgis/rest/services). 클라이언트가 이 URL에 접근할 수 없을 때는 문제가 발생합니다(일반적으로 브라우저 404 오류라고 함). 또한 클라이언트가 내부 머신에 대한 지식을 일부 얻게 됩니다.

클라이언트 및 ArcGIS Web Adaptor와의 통신 문제를 해결할 때 역방향 프록시 서버에서 X-Forwarded-Host 머리글 등록정보를 설정하는 것을 권장합니다. 이는 통신 결함의 일반적인 원인이기 때문입니다. 이 헤더를 설정하는 방법은 역방향 프록시 서버 구현에 따라 다릅니다.

기존 호스트 헤더를 전달하는 방법에 대한 지침은 역방향 프록시 서버에 대한 제품 설명서를 참고하세요.

고가용성 ArcGIS Notebook Server 사이트에 대한 역방향 프록시 서버 구성

단일 ArcGIS Notebook Server 사이트에 등록된 ArcGIS Web Adaptor를 실행하는 여러 백엔드 대상이 있는 역방향 프록시 서버를 구현할 때는 고려해야 할 추가 검토 사항이 있습니다.

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>