Verwenden Sie die Systemproxy-Option

Auf einen Blick
Ziel: Steuern, ob Dev Proxy den gesamten Systemdatenverkehr erfasst oder nur explizit weitergeleiteten Datenverkehr erfasst
Zeit: 5 Minuten
Voraussetzungen:Einrichten des Dev-Proxys

Wenn Sie Dev Proxy starten, wird er standardmäßig als Systemproxy registriert. Daher wird der gesamte HTTP/HTTPS-Datenverkehr auf Ihrem Computer automatisch über Dev Proxy weitergeleitet. Das Proxyieren des gesamten Datenverkehrs über Dev Proxy eignet sich gut für die meisten Szenarien– Sie starten Dev Proxy und erfasst sofort Anforderungen von Ihrer Anwendung ohne zusätzliche Konfiguration.

Es gibt jedoch Situationen, in denen Sie möglicherweise mehr Kontrolle darüber wünschen, über welchen Datenverkehr Dev Proxy durchläuft. Mit der asSystemProxy Option können Sie die automatische Systemproxyregistrierung deaktivieren, sodass Sie präzise steuern können, welche Anwendungen Dev Proxy verwenden.

Wann die Systemproxy-Registrierung deaktiviert werden sollte

Erwägen Sie, asSystemProxy auf false zu setzen, wenn:

  • Sie befinden sich in einem Unternehmensnetzwerk mit vorhandenen Proxyeinstellungen, die Sie nicht außer Kraft setzen möchten
  • Sie möchten nur eine bestimmte Anwendung testen, ohne dass sich dies auf andere Apps auswirkt, die auf Ihrem Computer ausgeführt werden
  • Andere Anwendungen schlagen fehl , wenn Dev Proxy ihren Datenverkehr abfangen (z. B. Azure-Funktionen)
  • Sie führen mehrere Dev-Proxyinstanzen aus und möchten Datenverkehr an bestimmte Instanzen weiterleiten.
  • Sie möchten den Eingriff in Systemdienste und Hintergrundprozesse minimieren.

Konfigurieren der Systemproxyoption

Sie können die asSystemProxy Option auf zwei Arten konfigurieren: verwenden Sie die Konfigurationsdatei oder Befehlszeile.

Konfigurationsdatei

Um die Systemproxyregistrierung dauerhaft zu deaktivieren, fügen Sie der Konfigurationsdatei die asSystemProxy Einstellung hinzu.

Datei:devproxyrc.json
Zweck: Automatische Systemproxyregistrierung deaktivieren

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

Befehlszeile

Um die Systemproxyregistrierung für eine einzelne Sitzung zu deaktivieren, verwenden Sie die Option --as-system-proxy.

devproxy --as-system-proxy false

Manuelles Weiterleiten von Datenverkehr an Dev Proxy

Wenn Sie die Systemproxyregistrierung deaktivieren, leiten Anwendungen den Datenverkehr nicht automatisch über Dev Proxy weiter. Sie müssen jede Anwendung so konfigurieren, dass der Dev-Proxy explizit verwendet wird.

Verwenden von Umgebungsvariablen

Die am häufigsten verwendete Methode zum Weiterleiten von Datenverkehr zu Dev Proxy besteht darin, die HTTPS_PROXY Umgebungsvariable festzulegen.

PowerShell:

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

Eingabeaufforderung:

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

Tipp

Einige Anwendungen unterstützen auch die HTTP_PROXY Umgebungsvariable. Legen Sie beides fest, wenn Ihre Anwendung SOWOHL HTTP- als auch HTTPS-Anforderungen sendet.

Sprachspezifische Konfiguration

Verschiedene Programmiersprachen und Frameworks haben ihre eigenen Möglichkeiten zum Konfigurieren von Proxys:

Beispiel: Testen von Azure-Funktionen, ohne den Start zu beeinträchtigen

Azure Functions verwendet gRPC für die interne Kommunikation, die fehlschlägt, wenn Dev Proxy als Systemproxy registriert wird. Um Dev Proxy mit Azure Functions zu verwenden, deaktivieren Sie die Systemproxyregistrierung, und konfigurieren Sie den Proxy über Umgebungsvariablen.

Datei:devproxyrc.json

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

Datei:local.settings.json

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

Mit dieser Konfiguration wird Azure Functions normal gestartet, während Ihre HTTP-Anforderungen an die überwachten URLs über Dev Proxy weitergeleitet werden.

Beispiel: Testen einer Anwendung, während andere nicht betroffen sind

Wenn Sie mehrere Anwendungen gleichzeitig entwickeln, sollten Sie dev Proxy nur mit einer davon verwenden. Deaktivieren Sie die Systemproxyregistrierung, und legen Sie die Umgebungsvariable nur für die Zielanwendung fest.

Starten Sie Dev Proxy ohne Systemproxyregistrierung:

devproxy --as-system-proxy false

Führen Sie ihre Anwendung in einem separaten Terminal mit dem konfigurierten Proxy aus:

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

Andere Anwendungen auf Ihrem Computer funktionieren weiterhin normal ohne Proxy-Interferenzen.

Ausführen mehrerer Dev-Proxyinstanzen

Wenn Sie asSystemProxy auf false festlegen, können Sie mehrere Dev Proxy-Instanzen gleichzeitig ausführen. Jede Instanz überwacht ihren eigenen Port und verfolgt ihren eigenen Zustand mithilfe von Instanzstatusdateien.

Mehrere Instanzen starten

Starten Sie jede Instanz an einem anderen Port:

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

In einem anderen Terminal:

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

Überprüfen des Status der laufenden Instanzen

Um alle ausgeführten Instanzen anzuzeigen, verwenden Sie den status Befehl:

devproxy status

Beenden einer bestimmten Instanz

Verwenden Sie die --pid Option mit dem stop Befehl, um eine bestimmte Instanz als Ziel festzulegen:

devproxy stop --pid 6456

So beenden Sie alle ausgeführten Instanzen:

devproxy stop

Anzeigen von Protokollen aus einer bestimmten Instanz

Verwenden Sie die --pid Option mit dem logs Befehl:

devproxy logs --pid 6456

Hinweis

Es kann jeweils nur eine Dev Proxy-Instanz als Systemproxy registriert werden. Wenn Sie versuchen, eine neue Instanz mit asSystemProxy auf true eingestellt zu starten, während bereits eine andere Systemproxyinstanz ausgeführt wird, blockiert Dev Proxy den Start.

Siehe auch