시스템 프록시 옵션 사용

한눈에 보기
목표: 개발자 프록시가 모든 시스템 트래픽을 캡처하는지 아니면 명시적으로 라우트된 트래픽만 캡처하는지 제어
시간: 5분
필수 구성 요소:개발 프록시 설정

기본적으로 개발자 프록시를 시작하면 시스템 프록시로 등록됩니다. 따라서 머신의 모든 HTTP/HTTPS 트래픽은 개발자 프록시를 통해 자동으로 라우팅됩니다. 개발자 프록시를 통해 모든 트래픽을 프록시하는 것은 대부분의 시나리오에서 잘 작동합니다. 개발자 프록시를 시작하면 추가 구성 없이 애플리케이션의 요청을 즉시 캡처합니다.

그러나 개발자 프록시를 통과하는 트래픽을 더 자세히 제어할 수 있는 상황이 있습니다. 이 asSystemProxy 옵션을 사용하면 자동 시스템 프록시 등록을 사용하지 않도록 설정하여 개발자 프록시를 사용하는 애플리케이션을 세밀하게 제어할 수 있습니다.

시스템 프록시 등록을 사용하지 않도록 설정하는 경우

asSystemProxy을/를 false로 설정하는 것이 좋습니다. 다음의 경우:

  • 회사 네트워크에 있으며, 재정의하지 않으려는 기존 프록시 설정이 있습니다.
  • 컴퓨터에서 실행되는 다른 앱에 영향을 주지 않고 특정 애플리케이션만 테스트하려고 합니다.
  • 개발자 프록시가 트래픽을 가로채면 다른 애플리케이션이 실패합니다(예: Azure Functions).
  • 여러 개발자 프록시 인스턴스를 실행하고 특정 인스턴스 로 트래픽을 라우팅하려고 합니다.
  • 시스템 서비스 및 백그라운드 프로세스와의 간섭을 최소화하려고 합니다.

시스템 프록시 옵션 구성

asSystemProxy 옵션을 구성하는 방법에는 두 가지가 있습니다: 구성 파일을 사용하거나 명령줄을 사용하는 것입니다.

구성 파일

시스템 프록시 등록을 영구적으로 사용하지 않도록 설정하려면 구성 파일에 설정을 추가 asSystemProxy 합니다.

파일:devproxyrc.json
목적: 자동 시스템 프록시 등록 사용 안 함

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
  "asSystemProxy": false,
  "urlsToWatch": [
    "https://api.contoso.com/*"
  ]
}

명령줄

단일 세션에 대한 시스템 프록시 등록을 사용하지 않도록 설정하려면 이 --as-system-proxy 옵션을 사용합니다.

devproxy --as-system-proxy false

수동으로 개발자 프록시로 트래픽 라우팅

시스템 프록시 등록을 사용하지 않도록 설정하면 애플리케이션이 개발자 프록시를 통해 트래픽을 자동으로 라우팅하지 않습니다. 개발자 프록시를 명시적으로 사용하도록 각 애플리케이션을 구성해야 합니다.

환경 변수 사용

개발자 프록시로 트래픽을 라우팅하는 가장 일반적인 방법은 환경 변수를 HTTPS_PROXY 설정하는 것입니다.

PowerShell:

$env:HTTPS_PROXY = "http://127.0.0.1:8000"
node app.js

명령 프롬프트:

set HTTPS_PROXY=http://127.0.0.1:8000
node app.js
HTTPS_PROXY=http://127.0.0.1:8000 node app.js

팁 (조언)

일부 애플리케이션은 환경 변수도 지원 HTTP_PROXY 합니다. 애플리케이션이 HTTP 및 HTTPS 요청을 모두 만드는 경우 둘 다 설정합니다.

언어별 구성

다양한 프로그래밍 언어와 프레임워크에는 프록시를 구성하는 고유한 방법이 있습니다.

예: 시작을 방해하지 않고 Azure Functions 테스트

Azure Functions는 내부 통신에 gRPC를 사용하며, 개발자 프록시가 시스템 프록시로 등록되면 실패합니다. Azure Functions에서 개발자 프록시를 사용하려면 시스템 프록시 등록을 사용하지 않도록 설정하고 환경 변수를 통해 프록시를 구성합니다.

파일:devproxyrc.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
  "asSystemProxy": false,
  "urlsToWatch": [
    "https://jsonplaceholder.typicode.com/*"
  ]
}

파일:local.settings.json

{
  "IsEncrypted": false,
  "Values": {
    "HTTPS_PROXY": "http://127.0.0.1:8000"
  }
}

이 구성을 사용하면 감시된 URL에 대한 HTTP 요청이 개발자 프록시를 통해 라우팅되는 동안 Azure Functions가 정상적으로 시작됩니다.

예: 다른 애플리케이션의 영향을 받지 않고 한 애플리케이션 테스트

동시에 여러 애플리케이션을 개발하는 경우 개발자 프록시 중 하나만 사용하는 것이 좋습니다. 시스템 프록시 등록을 사용하지 않도록 설정하고 대상 애플리케이션에 대해서만 환경 변수를 설정합니다.

시스템 프록시 등록 없이 개발 프록시를 시작합니다.

devproxy --as-system-proxy false

별도의 터미널에서 구성된 프록시를 사용하여 애플리케이션을 실행합니다.

$env:HTTPS_PROXY = "http://127.0.0.1:8000"
npm start
HTTPS_PROXY=http://127.0.0.1:8000 npm start

컴퓨터의 다른 애플리케이션은 프록시 간섭 없이 정상적으로 작동합니다.

여러 개발 프록시 인스턴스 실행

설정 asSystemProxyfalse하면 여러 개발자 프록시 인스턴스를 동시에 실행할 수 있습니다. 각 인스턴스는 자체 포트에서 수신 대기하고 인스턴스별 상태 파일을 사용하여 자체 상태를 추적합니다.

여러 인스턴스 시작

다른 포트에서 각 인스턴스를 시작합니다.

devproxy --as-system-proxy false --port 8000 --config-file devproxyrc-api1.json

다른 터미널에서:

devproxy --as-system-proxy false --port 9000 --config-file devproxyrc-api2.json

실행 중인 인스턴스의 상태 확인

실행 중인 모든 인스턴스를 보려면 다음 status 명령을 사용합니다.

devproxy status

특정 인스턴스 중지

특정 인스턴스를 대상으로 지정하려면 다음 명령을 사용하여 옵션을 --pid 사용합니다stop.

devproxy stop --pid 6456

실행 중인 모든 인스턴스를 중지하려면 다음을 수행합니다.

devproxy stop

특정 인스턴스의 로그 보기

--pid 옵션을 logs 명령과 함께 사용하세요.

devproxy logs --pid 6456

devproxy logs 없이 --pid를 실행하면 시스템 프록시 인스턴스의 로그 또는 시스템 프록시로 등록된 인스턴스가 없는 경우 가장 최근에 시작된 인스턴스의 로그가 표시됩니다. 또한 Dev Proxy는 선택한 인스턴스를 알려주고 실행 중인 다른 인스턴스의 프로세스 ID를 나열하는 알림을 출력합니다.

메모

한 번에 하나의 개발자 프록시 인스턴스만 시스템 프록시로 등록할 수 있습니다. 다른 시스템 프록시 인스턴스가 이미 실행 중일 때 asSystemProxy를 true로 설정된 새 인스턴스를 시작하려고 하면, Dev Proxy가 시작을 차단합니다.

참고하십시오