Trampas al configurar el servidor proxy de Axios

Trampas al configurar el servidor proxy de Axios


Las solicitudes de axios tienen una propiedad proxy que se puede usar para proxy en Node.js. Sin embargo, no es perfecta y fallará al hacer proxy de solicitudes HTTPS, por lo que es mejor no usarla.

import axios from "axios";

axios.get("https://example.com", {
  proxy: {
    host: "127.0.0.1",
    port: 7890,
  },
});

Al hacer solicitudes HTTPS a través de un proxy HTTP, primero debe enviar un método CONNECT para notificar al servidor proxy que establezca un túnel TCP al servidor de destino. De lo contrario, el servidor proxy solo enviará solicitudes no cifradas al puerto 443 del servidor de destino, lo que fallará. Si no está seguro de lo que estoy hablando, puede consultar este artículo.

Para una implementación correcta, puede consultar el comando curl. Configure un proxy HTTP (127.0.0.1:1025) usando Node.js, luego use el comando curl para enviar una solicitud HTTPS. Los registros del servidor proxy mostrarán que primero envía un método CONNECT.

curl -v -X POST -x 127.0.0.1:1025 <https://cloudflare.com/>