Hacer que Undici lea las variables de proxy del entorno
Usa EnvHttpProxyAgent de forma explícita y distingue la prioridad de minúsculas, las exclusiones y las URL capturadas frente a no_proxy dinámico.
Usa EnvHttpProxyAgent cuando el entorno del proceso deba elegir la ruta. Usa un ProxyAgent de Undici explícito si el endpoint debe formar parte de la configuración del cliente. Pásalo a la petición real: crear el agente por sí solo no modifica ninguna llamada fetch.
import { EnvHttpProxyAgent, fetch } from 'undici';
const dispatcher = new EnvHttpProxyAgent();
try {
const response = await fetch("https://example.com/", {
dispatcher,
signal: AbortSignal.timeout(15000),
});
console.log(response.status);
await response.arrayBuffer();
} finally {
await dispatcher.close();
}Guarda el código como proxy-check.mjs en un entorno de módulos ES con Undici disponible. Este arranque POSIX proporciona las dos rutas proxy y una lista de exclusiones vacía:
http_proxy=http://203.0.113.10:8080 \
https_proxy=http://203.0.113.10:8080 \
no_proxy= \
node proxy-check.mjsSustituye el endpoint de documentación por tu proxy HTTP o un candidato de la lista de proxies HTTP. Las asignaciones pertenecen a esta ejecución; otros shells usan otra sintaxis.
En Undici 8.12.3, las variables en minúsculas http_proxy, https_proxy y no_proxy tienen prioridad sobre las equivalentes en mayúsculas cuando existen ambas. Los destinos HTTP y HTTPS eligen sus propios ajustes. Un ajuste solo HTTP también sirve como alternativa para HTTPS; uno solo HTTPS no cubre HTTP. No supongas que se aplica la convención ALL_PROXY de otro cliente.
| Entrada | Cuándo la utiliza esta versión |
|---|---|
| Entorno de proxy HTTP/HTTPS | Se elige al construir el agente. Crea un dispatcher nuevo después de cambiar esos endpoints. |
no_proxy del entorno | Se vuelve a comprobar al despachar las peticiones. |
noProxy del constructor | Fija explícitamente la política de exclusiones en vez de seguir cambios posteriores del entorno. |
Las exclusiones pueden coincidir con hosts y puertos opcionales; un asterisco solo excluye todas las peticiones del proxy. Revisa la coincidencia del destino si el proxy no recibe tráfico.
En Windows, el proceso principal no distingue mayúsculas en los nombres del entorno, por lo que HTTP_PROXY y http_proxy no son valores independientes. Las copias de entorno de Node Worker tienen una distinción de mayúsculas documentada. Tenlo en cuenta antes de definir ambas grafías para probar la prioridad. El ejemplo cierra su dispatcher al acabar; consérvalo mientras las peticiones repetidas necesiten la misma política de endpoints capturada.