Udostępnij za pośrednictwem


Użyj opcji serwera proxy systemu

Na pierwszy rzut oka
Celem: Kontrolowanie, czy serwer proxy deweloperów przechwytuje cały ruch systemowy, czy tylko jawnie kierowany ruch
Czas: 5 minut
Wymagania wstępne:konfigurowanie serwera proxy deweloperskiego

Domyślnie po uruchomieniu serwera proxy deweloperskiego program rejestruje się jako serwer proxy systemu. W związku z tym cały ruch HTTP/HTTPS na maszynie jest automatycznie kierowany przez serwer proxy deweloperów. Przekierowanie całego ruchu przez Dev Proxy działa dobrze w większości przypadków — uruchamiasz Dev Proxy i od razu przechwytuje on żądania twojej aplikacji bez potrzeby dodatkowej konfiguracji.

Istnieją jednak sytuacje, w których możesz chcieć mieć większą kontrolę nad tym, który ruch przechodzi przez serwer proxy deweloperów. Opcja asSystemProxy umożliwia wyłączenie automatycznej rejestracji systemowego serwera proxy, zapewniając szczegółową kontrolę nad tym, które aplikacje korzystają z Dev Proxy.

Kiedy wyłączyć rejestrację serwera proxy systemu

Rozważ ustawienie asSystemProxy na false , gdy:

  • Jesteś w sieci firmowej z istniejącymi ustawieniami serwera proxy, których nie chcesz zastąpić
  • Chcesz przetestować tylko określoną aplikację bez wpływu na inne aplikacje uruchomione na maszynie
  • Inne aplikacje kończą się niepowodzeniem , gdy serwer proxy deweloperów przechwytuje ruch (na przykład usługa Azure Functions)
  • Uruchamiasz wiele wystąpień serwera proxy deweloperskiego i chcesz kierować ruch do określonych wystąpień
  • Chcesz zminimalizować ingerencję w usługi systemowe i procesy w tle

Konfigurowanie opcji serwera proxy systemu

Tę opcję można skonfigurować asSystemProxy na dwa sposoby: przy użyciu pliku konfiguracji lub wiersza polecenia.

Plik konfiguracji

Aby trwale wyłączyć rejestrację serwera proxy systemu, dodaj ustawienie asSystemProxy do pliku konfiguracji.

Plik:devproxyrc.json
Cel: Wyłączenie automatycznej rejestracji systemowego serwera proxy

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

Wiersz polecenia

Aby wyłączyć rejestrację serwera proxy systemu dla jednej sesji, użyj --as-system-proxy opcji .

devproxy --as-system-proxy false

Ręczne kierowanie ruchu do serwera Dev Proxy

Po wyłączeniu rejestracji serwera proxy systemu aplikacje nie będą automatycznie kierować ruchu przez serwer proxy deweloperów. Należy skonfigurować każdą aplikację, aby używać serwera Dev Proxy jawnie.

Korzystanie ze zmiennych środowiskowych

Najczęstszym sposobem kierowania ruchu do serwera proxy deweloperskiego jest ustawienie zmiennej środowiskowej HTTPS_PROXY .

PowerShell:

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

Wiersz polecenia:

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

Wskazówka

Niektóre aplikacje obsługują również zmienną HTTP_PROXY środowiskową. Ustaw oba te ustawienia, jeśli aplikacja wysyła żądania HTTP i HTTPS.

Konfiguracja specyficzna dla języka

Różne języki programowania i struktury mają własne sposoby konfigurowania serwerów proxy:

Przykład: testowanie usługi Azure Functions bez zakłócania uruchamiania

Usługa Azure Functions używa usługi gRPC do komunikacji wewnętrznej, która kończy się niepowodzeniem, gdy serwer proxy deweloperów jest zarejestrowany jako serwer proxy systemu. Aby używać serwera proxy deweloperskiego z usługą Azure Functions, wyłącz rejestrację serwera proxy systemu i skonfiguruj serwer proxy za pomocą zmiennych środowiskowych.

Plik:devproxyrc.json

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

Plik:local.settings.json

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

W przypadku tej konfiguracji usługa Azure Functions jest uruchamiana normalnie, gdy żądania HTTP do obserwowanych adresów URL są kierowane za pośrednictwem serwera proxy deweloperskiego.

Przykład: Testowanie jednej aplikacji bez wpływu na inne

Podczas tworzenia wielu aplikacji jednocześnie możesz chcieć użyć Dev Proxy tylko z jedną z nich. Wyłącz rejestrację serwera proxy systemu i ustaw zmienną środowiskową tylko dla aplikacji docelowej.

Uruchom Dev Proxy bez rejestracji w systemowym serwerze proxy:

devproxy --as-system-proxy false

W osobnym terminalu uruchom aplikację przy użyciu skonfigurowanego serwera proxy:

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

Inne aplikacje na maszynie nadal działają normalnie bez żadnych zakłóceń serwera proxy.

Uruchamianie wielu instancji Dev Proxy

Po ustawieniu asSystemProxy na false, można jednocześnie uruchomić wiele instancji serwera proxy dla deweloperów. Każde wystąpienie nasłuchuje na swoim własnym porcie i używa plików stanu przypisanych do poszczególnych wystąpień, aby śledzić własny stan.

Uruchamianie wielu wystąpień

Uruchom każde wystąpienie na innym porcie:

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

W innym terminalu:

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

Sprawdzanie stanu uruchomionych wystąpień

Aby wyświetlić wszystkie uruchomione wystąpienia, użyj status polecenia :

devproxy status

Zatrzymaj określone wystąpienie

Aby określić docelowe wystąpienie, użyj opcji --pid z poleceniem stop.

devproxy stop --pid 6456

Aby zatrzymać wszystkie uruchomione wystąpienia:

devproxy stop

Wyświetlanie dzienników z określonego wystąpienia

Użyj opcji --pid z poleceniem logs:

devproxy logs --pid 6456

Uwaga / Notatka

Jednocześnie można zarejestrować tylko jedno wystąpienie serwera proxy deweloperskiego jako serwer proxy systemu. Jeśli spróbujesz uruchomić nowe wystąpienie z ustawioną wartością asSystemProxy na true podczas gdy inne wystąpienie systemowego serwera proxy jest już uruchomione, Dev Proxy blokuje uruchomienie.

Zobacz także