
Armadilhas ao configurar o servidor proxy do Axios
As requisições do axios têm uma propriedade proxy
que pode ser usada para proxy no Node.js. No entanto, não é perfeita e falhará ao fazer proxy de requisições HTTPS, então é melhor não usá-la.
import axios from "axios";
axios.get("https://example.com", {
proxy: {
host: "127.0.0.1",
port: 7890,
},
});
Ao fazer requisições HTTPS através de um proxy HTTP, você precisa primeiro enviar um método CONNECT para notificar o servidor proxy para estabelecer um túnel TCP para o servidor de destino. Caso contrário, o servidor proxy apenas enviará requisições não criptografadas para a porta 443 do servidor de destino, o que falhará. Se você não tem certeza do que estou falando, pode verificar este artigo.
Para uma implementação correta, você pode consultar o comando curl. Configure um proxy HTTP (127.0.0.1:1025) usando Node.js, então use o comando curl para enviar uma requisição HTTPS. Os logs do servidor proxy mostrarão que ele primeiro envia um método CONNECT.
curl -v -X POST -x 127.0.0.1:1025 <https://cloudflare.com/>