Használja a rendszerproxit

Egy pillantással
Cél: Annak szabályozása, hogy a Dev Proxy rögzíti-e az összes rendszerforgalmat, vagy csak explicit módon irányított forgalmat
Idő: 5 perc
Előfeltételek:Fejlesztői proxy beállítása

Alapértelmezés szerint a Dev Proxy indításakor a rendszerproxyként regisztrálja magát. Ennek eredményeképpen a gép összes HTTP/HTTPS-forgalma automatikusan a Dev Proxyn keresztül lesz irányítva. A dev proxyn keresztüli összes forgalom proxyzása a legtöbb forgatókönyv esetében jól működik – ön elindítja a Dev Proxyt, és minden további konfiguráció nélkül azonnal rögzíti az alkalmazástól érkező kérelmeket.

Vannak azonban olyan helyzetek, amikor érdemes lehet jobban szabályozni, hogy melyik forgalom halad át a Dev Proxyn. Ezzel asSystemProxy a beállítással letilthatja az automatikus rendszerproxy-regisztrációt, így részletesen szabályozhatja, hogy mely alkalmazások használják a Dev Proxyt.

Mikor tiltsa le a rendszerproxy-regisztrációt?

Fontolja meg asSystemProxy beállítását false mikor:

  • Ön egy vállalati hálózaton van, meglévő proxybeállításokkal, amelyeket nem szeretne felülírni
  • Csak egy adott alkalmazást szeretne tesztelni anélkül, hogy az hatással van a számítógépen futó többi alkalmazásra
  • Más alkalmazások meghiúsulnak , ha a Dev Proxy elfogja a forgalmat (például Az Azure Functions)
  • Több fejlesztői proxypéldányt futtat, és a forgalmat adott példányokra szeretné irányítani
  • Minimalizálni szeretné a rendszerszolgáltatások és a háttérfolyamatok interferencia-zavarását

A rendszerproxy beállítása

A asSystemProxy beállítás kétféleképpen konfigurálható: a konfigurációs fájl vagy a parancssor segítségével.

Konfigurációs fájl

A rendszerproxy-regisztráció állandó letiltásához adja hozzá a beállítást a asSystemProxy konfigurációs fájlhoz.

Fájl:devproxyrc.json
Célja: Automatikus rendszerproxy-regisztráció letiltása

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

Parancssor

Ha egyetlen munkamenetre szeretné letiltani a rendszerproxy-regisztrációt, használja a --as-system-proxy lehetőséget.

devproxy --as-system-proxy false

Forgalom manuális átirányítása a Dev Proxy-ra

A rendszerproxy-regisztráció letiltásakor az alkalmazások nem irányítják át automatikusan a forgalmat a Dev Proxyn keresztül. Minden alkalmazást konfigurálnia kell a Dev Proxy explicit használatára.

Környezeti változók használata

A forgalom Dev Proxyba való átirányításának leggyakoribb módja a HTTPS_PROXY környezeti változó beállítása.

PowerShell:

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

Parancssorba:

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

Jótanács

Egyes alkalmazások a környezeti változót HTTP_PROXY is támogatják. Mindkettőt beállíthatja, ha az alkalmazás HTTP- és HTTPS-kéréseket is végrehajt.

Nyelvspecifikus konfiguráció

A különböző programozási nyelvek és keretrendszerek saját módszerekkel konfigurálhatják a proxykat:

Példa: Az Azure Functions tesztelése az indítás zavarása nélkül

Az Azure Functions a gRPC-t használja a belső kommunikációhoz, ami sikertelen, ha a Dev Proxy regisztrálva van a rendszerproxyként. Ha dev proxyt szeretne használni az Azure Functionsben, tiltsa le a rendszerproxy regisztrációját, és konfigurálja a proxyt környezeti változókon keresztül.

Fájl: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/*"
  ]
}

Fájl:local.settings.json

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

Ezzel a konfigurációval az Azure Functions normál módon indul el, miközben a figyelt URL-címekre irányuló HTTP-kérések dev proxyn keresztül lesznek irányítva.

Példa: Egy alkalmazás tesztelése, miközben másokat nem érint.

Ha egyszerre több alkalmazást fejleszt, érdemes lehet a Dev Proxyt csak egy alkalmazással használni. Tiltsa le a rendszerproxy-regisztrációt, és csak a célalkalmazáshoz állítsa be a környezeti változót.

Fejlesztői proxy indítása rendszerproxy-regisztráció nélkül:

devproxy --as-system-proxy false

Egy külön terminálon futtassa az alkalmazást a konfigurált proxyval:

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

A gépen lévő egyéb alkalmazások továbbra is normálisan működnek proxy interferencia nélkül.

Több fejlesztői proxypéldány futtatása

Ha be van állítva asSystemProxyfalse, egyszerre több fejlesztői proxy példányt is futtathat. Minden példány figyeli a saját portját, és példányonkénti állapotfájlokkal követi nyomon a saját állapotát.

Több példány indítása

Indítsa el az egyes példányokat egy másik porton:

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

Egy másik terminálban:

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

Futó példányok állapotának ellenőrzése

Az összes futó példány megtekintéséhez használja a status következő parancsot:

devproxy status

Egy konkrét példány leállítása

Egy adott példány megcélzásához használja az --pid opciót a stop paranccsal.

devproxy stop --pid 6456

Az összes futó példány leállítása:

devproxy stop

Egy adott példány naplóinak megtekintése

Használja a --pid opciót a logs paranccsal.

devproxy logs --pid 6456

Ha a --pid-t devproxy logs nélkül futtatja, a Dev Proxy megjeleníti a rendszerproxy-példány naplóit, vagy a legutóbb elindított példány naplóit, ha egyik sincs regisztrálva rendszerproxyként. A Dev Proxy egy értesítést is kinyomtat, amely közli, hogy melyik példányt választotta ki, és felsorolja a többi futó példány folyamatazonosítóit.

Megjegyzés:

Egyszerre csak egy fejlesztői proxypéldány regisztrálható rendszerproxyként. Ha új példányt asSystemProxy próbál elindítani úgy, hogy true egy másik rendszerproxy-példány már fut, a Dev Proxy letiltja az indítást.

Lásd még