Uso de la opción de proxy del sistema

De un vistazo
Objetivo: Controlar si Dev Proxy captura todo el tráfico del sistema o solo el tráfico enrutado explícitamente
Tiempo: 5 minutos
Requisitos previos:Configuración del proxy de desarrollo

De forma predeterminada, al iniciar el proxy de desarrollo, se registra como el proxy del sistema. Como resultado, todo el tráfico HTTP/HTTPS de la máquina se enruta automáticamente a través del proxy de desarrollo. Configurar que todo el tráfico pase a través de Dev Proxy funciona bien para la mayoría de los escenarios: simplemente inicia Dev Proxy y captura inmediatamente las solicitudes de tu aplicación sin necesidad de ninguna configuración adicional.

Sin embargo, hay situaciones en las que es posible que quiera tener más control sobre qué tráfico pasa a través del proxy de desarrollo. La asSystemProxy opción le permite deshabilitar el registro automático de proxy del sistema, lo que le proporciona un control específico sobre qué aplicaciones usan proxy de desarrollo.

Cuándo deshabilitar el registro de proxy del sistema

Considere la posibilidad de establecer asSystemProxy en false cuándo:

  • Está en una red corporativa con las configuraciones de proxy ya establecidas que no desea sobrescribir.
  • Solo quiere probar una aplicación específica sin afectar a otras aplicaciones que se ejecutan en la máquina.
  • Se produce un error en otras aplicaciones cuando dev Proxy intercepta su tráfico (por ejemplo, Azure Functions)
  • Está ejecutando varias instancias de Proxy de desarrollo y quiere enrutar el tráfico a instancias específicas.
  • Quiere minimizar la interferencia con los servicios del sistema y los procesos en segundo plano

Configuración de la opción de proxy del sistema

Puede configurar la asSystemProxy opción de dos maneras: mediante el archivo de configuración o la línea de comandos.

Archivo de configuración

Para deshabilitar de forma persistente el registro del proxy del sistema, agregue la asSystemProxy configuración al archivo de configuración.

Archivo:devproxyrc.json
Propósito: Deshabilitación del registro automático de proxy del sistema

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

Línea de comandos

Para deshabilitar el registro de proxy del sistema para una sola sesión, use la --as-system-proxy opción .

devproxy --as-system-proxy false

Enrutar el tráfico al proxy de desarrollo manualmente

Al deshabilitar el registro de proxy del sistema, las aplicaciones no enrutan automáticamente su tráfico mediante Dev Proxy. Debe configurar cada aplicación para que use el Dev Proxy explícitamente.

Uso de variables de entorno

La manera más común de enrutar el tráfico al proxy de desarrollo es estableciendo la HTTPS_PROXY variable de entorno.

PowerShell:

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

Símbolo del sistema:

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

Sugerencia

Algunas aplicaciones también admiten la variable de HTTP_PROXY entorno. Establezca ambos si la aplicación realiza solicitudes HTTP y HTTPS.

Configuración específica del idioma

Los distintos lenguajes de programación y marcos tienen sus propias formas de configurar servidores proxy:

Ejemplo: Prueba de Azure Functions sin interferir con el inicio

Azure Functions usa gRPC para la comunicación interna, lo que produce un error cuando el proxy de desarrollo se registra como proxy del sistema. Para usar Dev Proxy con Azure Functions, deshabilite el registro del proxy del sistema y configure el proxy a través de variables de entorno.

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

Archivo:local.settings.json

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

Con esta configuración, Azure Functions se inicia normalmente mientras las solicitudes HTTP a las direcciones URL observadas se enrutan a través de Dev Proxy.

Ejemplo: Probar una aplicación mientras mantiene a otros usuarios sin verse afectados

Al desarrollar varias aplicaciones simultáneamente, es posible que quiera utilizar Dev Proxy con solo una de ellas. Deshabilite el registro del proxy del sistema y establezca la variable de entorno solo para la aplicación de destino.

Inicie el proxy de desarrollo sin configurar el proxy del sistema.

devproxy --as-system-proxy false

En un terminal independiente, ejecute la aplicación con el proxy configurado:

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

Otras aplicaciones de la máquina siguen funcionando normalmente sin interferencias de proxy.

Ejecutar varias instancias de Dev Proxy

Cuando se establece asSystemProxy en false, puede ejecutar simultáneamente varias instancias de Dev Proxy. Cada instancia escucha en su propio puerto y realiza un seguimiento de su propio estado mediante archivos de estado por instancia.

Inicio de varias instancias

Inicie cada instancia en un puerto diferente:

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

En otro terminal:

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

Comprobación del estado de las instancias en ejecución

Para ver todas las instancias en ejecución, use el status comando :

devproxy status

Detener una instancia específica

Para tener como destino una instancia específica, use la --pid opción con el stop comando :

devproxy stop --pid 6456

Para detener todas las instancias en ejecución:

devproxy stop

Visualización de registros desde una instancia específica

Use la --pid opción con el logs comando :

devproxy logs --pid 6456

Si se ejecuta devproxy logs sin --pid, Dev Proxy muestra los registros de la instancia de proxy del sistema o la instancia iniciada más recientemente si ninguna está registrada como proxy del sistema. El proxy de desarrollo también imprime un aviso que indica qué instancia seleccionó y enumera los identificadores de proceso de las otras instancias en ejecución.

Nota:

Solo se puede registrar una instancia de Proxy de desarrollo como proxy del sistema a la vez. Si intenta iniciar una nueva instancia con asSystemProxy establecido en true mientras ya se está ejecutando otra instancia de proxy del sistema, Dev Proxy bloquea el inicio.

Consulte también