Use a opção de proxy do sistema

De relance
Objetivo: Controlar se o Dev Proxy captura todo o tráfego do sistema ou apenas o tráfego explicitamente encaminhado
Tempo: 5 minutos
Pré-requisitos:Configurar o Proxy de Desenvolvimento

Por defeito, quando inicias o Dev Proxy, ele regista-se como proxy do sistema. Como resultado, todo o tráfego HTTP/HTTPS na sua máquina é automaticamente encaminhado através do Dev Proxy. Encaminhar todo o tráfego através do Dev Proxy funciona bem na maior parte dos cenários — basta iniciar o Dev Proxy, e ele captura imediatamente os pedidos da sua aplicação sem necessidade de configuração adicional.

No entanto, há situações em que pode querer mais controlo sobre que tráfego passa pelo Dev Proxy. A asSystemProxy opção permite-lhe desativar o registo automático de proxy do sistema, dando-lhe controlo detalhado sobre quais as aplicações que usam Dev Proxy.

Quando desativar o registo do proxy do sistema

Considere definir asSystemProxy para false quando:

  • Estás numa rede corporativa com definições de proxy existentes que não queres sobrepor
  • Só queres testar uma aplicação específica sem afetar outras aplicações a correr na tua máquina
  • Outras aplicações falham quando o Dev Proxy interceta o seu tráfego (por exemplo, Azure Functions)
  • Estás a correr várias instâncias Dev Proxy e queres encaminhar o tráfego para instâncias específicas
  • Quer minimizar interferências com os serviços do sistema e processos em segundo plano

Configurar a opção proxy do sistema

Podes configurar a asSystemProxy opção de duas formas: usando o ficheiro de configuração ou a linha de comandos.

Arquivo de configuração

Para desativar persistentemente o registo do proxy do sistema, adicione a asSystemProxy definição ao seu ficheiro de configuração.

Ficheiro:devproxyrc.json
Finalidade: Desativar o registo automático de proxy do sistema

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

Linha de comandos

Para desativar o registo do proxy do sistema para uma única sessão, use a --as-system-proxy opção.

devproxy --as-system-proxy false

Encaminhe o tráfego para o Proxy de Desenvolvimento manualmente

Quando desativas o registo do proxy do sistema, as aplicações não encaminham automaticamente o seu tráfego através do Dev Proxy. Tens de configurar cada aplicação para usar o Dev Proxy explicitamente.

Usando variáveis de ambiente

A forma mais comum de encaminhar tráfego para o Dev Proxy é definindo a HTTPS_PROXY variável de ambiente.

PowerShell::

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

Linha de Comandos:

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

Sugestão

Algumas aplicações também suportam a HTTP_PROXY variável de ambiente. Defina ambos se a sua aplicação fizer pedidos HTTP e HTTPS.

Configuração específica da língua

Diferentes linguagens de programação e frameworks têm as suas próprias formas de configurar proxies:

Exemplo: Teste Azure Functions sem interferir no arranque

O Azure Functions usa gRPC para comunicação interna, que falha quando o Proxy de Desenvolvimento é registado como proxy do sistema. Para usar Dev Proxy com Azure Functions, desative o registo do proxy do sistema e configure o proxy através de variáveis de ambiente.

Ficheiro: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/*"
  ]
}

Ficheiro:local.settings.json

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

Com esta configuração, o Azure Functions inicia normalmente enquanto os seus pedidos HTTP para os URLs visualizados são encaminhados através do Dev Proxy.

Exemplo: Testar uma aplicação enquanto mantém as outras intactas

Quando estás a desenvolver várias aplicações em simultâneo, podes querer usar Dev Proxy com apenas uma delas. Desative o registo do proxy do sistema e defina a variável ambiente apenas para a aplicação alvo.

Iniciar Proxy de Desenvolvimento sem registo de proxy de sistema:

devproxy --as-system-proxy false

Num terminal separado, execute a sua aplicação com o proxy configurado:

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

Outras aplicações na sua máquina continuam a funcionar normalmente, sem qualquer interferência de proxy.

Executar múltiplas instâncias de Proxy de Desenvolvimento

Quando defines asSystemProxy para false, podes executar várias instâncias Dev Proxy simultaneamente. Cada instância ouve na sua própria porta e acompanha o seu próprio estado usando ficheiros de estado por instância.

Inicie múltiplas instâncias

Inicie cada instância numa porta diferente:

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

Noutro terminal:

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

Verifique o estado das instâncias em execução

Para ver todas as instâncias em execução, use o status comando:

devproxy status

Parar uma instância específica

Para direcionar uma instância específica, use a --pid opção com o stop comando:

devproxy stop --pid 6456

Para interromper todas as instâncias em execução:

devproxy stop

Ver registos de uma instância específica

Use a --pid opção com o logs comando:

devproxy logs --pid 6456

Observação

Apenas uma instância Dev Proxy pode ser registada como proxy do sistema de cada vez. Se tentares iniciar uma nova instância com asSystemProxy definido para true enquanto outra instância proxy do sistema já está a correr, o Proxy de desenvolvimento bloqueia o arranque.

Consulte também