
Les pièges de la configuration de proxy avec Axios
La requête axios a une propriété proxy
qui peut être utilisée pour le proxy sur Node.js. Mais elle n’est pas parfaite et génère des erreurs lors du proxy de requêtes HTTPS - ne l’utilisez pas.
import axios from "axios";
axios.get("https://example.com", {
proxy: {
host: "127.0.0.1",
port: 7890,
},
});
Lorsque les requêtes HTTPS passent par un proxy HTTP, il faut d’abord envoyer la méthode CONNECT pour notifier au serveur proxy d’établir un tunnel TCP vers le serveur cible. Sinon, le serveur proxy enverra seulement des requêtes non chiffrées au port 443 du serveur cible, ce qui causera une erreur. Si vous ne comprenez pas ce que je dis, vous pouvez consulter cet article.
Une implémentation correcte peut être référencée avec la commande curl. Créez simplement un proxy HTTP Node.js (127.0.0.1:1025), puis utilisez la commande curl pour envoyer une requête HTTPS. Les logs du serveur proxy montreront qu’il envoie d’abord la méthode CONNECT.
curl -v -X POST -x 127.0.0.1:1025 <https://cloudflare.com/>