Proxy HTTP và SOCKS trong Axios cho Node.js
Cấu hình proxy HTTP trong bộ điều hợp Node HTTP của Axios hoặc dùng agent SOCKS khi IP được chọn là điểm cuối SOCKS.
Bộ điều hợp Node HTTP của Axios nhận đối tượng proxy HTTP có máy chủ và cổng dạng số:
import axios from 'axios';
const response = await axios.get('https://example.com/', {
adapter: 'http',
proxy: {
protocol: 'http',
host: '203.0.113.10',
port: 8080,
},
timeout: 15000,
});
console.log(response.status);
Thay điểm cuối tài liệu bằng mục HTTP từ dịch vụ của bạn hoặc danh sách proxy HTTP. Các ví dụ dùng Node; Axios trong trình duyệt không thể chọn proxy mạng của trình duyệt qua các tùy chọn này. Trường host nhận địa chỉ không có lược đồ URL.
Trường protocol của đối tượng proxy mô tả bên lắng nghe của nó. Trong Axios 1.21.0, bộ điều hợp Node HTTP dùng CONNECT cho đích HTTPS rồi thương lượng TLS với máy chủ gốc qua đường hầm. Bản cũ từng dùng đường đi proxy khác, nên phiên bản đã cài có ý nghĩa.
URL SOCKS cần agent SOCKS
Đối tượng proxy HTTP không chọn SOCKS. Hãy dùng agent tương thích:
npm install [email protected] [email protected]
import axios from 'axios';
import { SocksProxyAgent } from 'socks-proxy-agent';
const agent = new SocksProxyAgent('socks5h://203.0.113.10:1080');
try {
const response = await axios.get('https://example.com/', {
adapter: 'http',
httpAgent: agent,
httpsAgent: agent,
proxy: false,
timeout: 15000,
});
console.log(response.status);
} finally {
agent.destroy();
}
proxy: false tắt xử lý proxy HTTP của Axios cho tuyến do agent SOCKS cung cấp. Cung cấp agent cho cả đích HTTP và HTTPS bao phủ hai lược đồ. Ở đây socks5h giao DNS của đích cho phía SOCKS; máy chủ được chọn phải hỗ trợ giao thức đó.
Hiểu lỗi
Lỗi Axios có thể chứa phản hồi khi trang web trả về trạng thái không thành công. Nếu không có phản hồi, xem mã lỗi và chi tiết kết nối. Thiếu mô-đun, giao thức không hỗ trợ hoặc phiên bản Node không tương thích có thể gây lỗi trước khi yêu cầu tới điểm cuối.
Với proxy HTTP có xác thực, dùng trường auth của đối tượng proxy với thông tin do bên vận hành cung cấp. Thiết lập xác thực của đích phục vụ một bên khác.