Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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:
- Node.js: Use o pacote global-agent ou configure diretamente o agente HTTP
-
.NET: Defina a
HTTPS_PROXYvariável de ambiente ou configureHttpClientcom um proxy ( veja Usar Proxy de Desenvolvimento com aplicações .NET) -
Azure Functions: Configurar o proxy em
local.settings.json(ver Usar Proxy de Desenvolvimento com .NET Azure Functions)
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.