Skip To Content

프록시 사용

앱을 보급할 때 프록시를 사용해야 할 수 있습니다. Web AppBuilder는 다음과 같은 상황에서 프록시 사용을 지원합니다.

  • 교차 도메인 리소스 접근
  • 2048자를 초과하는 요청
  • 토큰 기반 인증으로 보안이 유지되는 리소스 접근
  • OAuth 2.0 앱 로그인
  • 로깅 활성화
  • 리소스 및 참조 페이지 기반 속도 제한

기본 설정에 따라, 다운로드한 앱은 Portal for ArcGIS에서 제공하는 프록시를 사용합니다. 앱 구성 파일에서 httpProxy 등록정보를 수정하여 사용자의 고유한 프록시와 규칙을 지정합니다. httpProxy 등록정보는 다음과 같은 속성을 포함합니다.

속성설명

useProxy

불린(Boolean). 선택 사항입니다. 기본값: true. false인 경우 모든 요청이 프록시를 사용하지 않습니다.

url

문자열. 선택 사항입니다. 프록시 위치를 지정하기 위한 URL입니다. 요청이 어떠한 프록시 규칙과도 일치하지 않지만 프록시를 사용해야 하는 경우(예: 교차 도메인 요청) 이 프록시가 사용됩니다.

alwaysUseProxy

불린(Boolean). 선택 사항입니다. 프록시가 항상 REST 엔드포인트에 대한 통신에 사용되어야 하는지 여부를 지정합니다. 기본값: false. 요청이 어떠한 프록시 규칙과도 일치하지 않고 프록시가 필요하지 않은 경우 앱은 이 등록정보를 확인하여 추가로 프록시를 사용할 방법을 결정합니다. false인 경우 요청은 url에서 참조하는 프록시를 거치지 않습니다. true인 경우 요청은 url에서 참조하는 프록시를 거칩니다.

rules

개체[]. 선택 사항입니다. 동일한 URL prefix로 리소스 집합의 프록시를 정의합니다. 요청 URL이 규칙과 일치하는 경우 요청은 프록시를 통해 라우팅됩니다. 각 규칙은 다음과 같은 두 가지 등록정보를 포함합니다.

  • urlPrefix-string - 지정된 프록시를 통해 접근해야 하는 리소스의 URL 접두사입니다.
  • proxyUrl-string - 프록시의 URL입니다.

주의:

useProxy(이)가 false이고 요청이 2,048자를 넘는 경우에는 GET 대신 POST 요청이 전송됩니다. 또한 서비스에서 CORS가 지원된다면 POST 요청이 서비스에 직접 전송될 수 있습니다. 그렇지 않으면 POST 요청이 실패합니다. useProxy(이)가 true이고 POST 요청이 전송될 때 서비스에서 CORS가 지원되지 않는다면 POST 요청이 프록시에 의해 자동으로 전송됩니다.

다음은 프록시가 위의 속성과 관련하여 작동하는 방식을 보여 줍니다.

  • 앱이 useProxy을(를) 확인합니다.
    • false인 경우 모든 요청이 프록시를 사용하지 않습니다.
    • true인 경우 앱은 rules을(를) 확인합니다.
      • 요청이 프록시 규칙과 일치하는 경우 앱은 규칙에 설정된 proxyUrl을(를) 사용합니다.
      • 요청이 어떠한 프록시 규칙과도 일치하지 않지만 프록시를 사용해야 하는 경우(예: 교차 도메인 요청) 앱은 url에서 참조하는 프록시를 사용합니다.
      • 요청이 프록시 규칙과 일치하지도 않고 프록시를 필요로 하지도 않는 경우 앱은 추가로 alwaysUseProxy을(를) 확인합니다.
        • false인 경우 요청은 url에서 참조하는 프록시를 거치지 않습니다.
        • true인 경우 요청은 url에서 참조하는 프록시를 거칩니다.
프록시 다이어그램

예:

"httpProxy": {
		"useProxy": true,
		"url": "http://gallery.chn.esri.com/arcgis/sharing/proxy",
		"alwaysUseProxy": false,
		"rules": [{
			"urlPrefix": "http://route.arcgis.com/",
			"proxyUrl": "resource-proxy-1.0/DotNet/proxy.ashx"
		}]
	}

또한 Esri는 각 특정 서버 측 플랫폼을 대상으로 하는 세 가지 프록시인 ASP.NET, Java/JSP, PHP를 제공합니다. GitHub에서 해당 플랫폼에 적합한 프록시를 다운로드하여 배포하세요. 또한 블로그 게시물에서 프록시 사용Web AppBuilder로 프록시 설정 예를 참고하세요.