Ngiêm cấm sử đụng PROXY và VPS vào mục đích trái pháp luật bạn sẽ phải chịu toàn bộ trách nhiệm trước pháp luật khi sử dụng dịch vụ của chúng tôi tks!
Axios proxy: Cấu hình proxy HTTP, SOCKS5 trong Node.js

Axios proxy: Cấu hình proxy HTTP, SOCKS5 trong Node.js

Chuyên viên Kỹ thuật ProxyVN 03-22-2026 Đang tính... phút đọc

Axios proxy là cách cấu hình để thư viện axios trong Node.js gửi yêu cầu HTTP qua một máy chủ proxy thay vì kết nối thẳng tới máy chủ đích, bằng tuỳ chọn proxy có sẵn hoặc bằng một agent chuyên xử lý proxy. Đây là việc gần như bắt buộc khi viết công cụ thu thập dữ liệu, gọi API từ mạng có kiểm soát hoặc kiểm thử theo khu vực. Bài này ProxyVN hướng dẫn từng cách, kèm phần cho fetch của Node và cách xử lý lỗi.

Axios proxy và hai môi trường chạy

axios chạy được ở hai nơi: trong trình duyệt và trong Node.js. Chuyện proxy khác hẳn nhau giữa hai nơi này, và nhầm lẫn ở đây là nguồn của rất nhiều câu hỏi.

Trong trình duyệt

Khi chạy trong trang web, axios dùng cơ chế gửi yêu cầu của trình duyệt. Mã JavaScript trong trang không có quyền chọn proxy. Trình duyệt quyết định đường đi dựa trên cài đặt của hệ điều hành hoặc của tiện ích. Tuỳ chọn proxy của axios bị bỏ qua trong môi trường này.

Trong Node.js

Khi chạy trên máy chủ hoặc trong script dòng lệnh, axios dùng các mô-đun http và https của Node.js. Tại đây chương trình tự mở kết nối mạng, nên tự chọn được proxy. Toàn bộ bài này nói về môi trường Node.js.

Thứ dễ nhầm: proxy của máy chủ phát triển

Các công cụ phát triển giao diện có thiết lập tên là proxy trong tệp cấu hình. Thiết lập đó bảo máy chủ phát triển chuyển tiếp yêu cầu API sang máy chủ khác để tránh lỗi khác nguồn gốc khi lập trình. Nó không liên quan tới proxy đổi địa chỉ IP, cũng không liên quan tới tuỳ chọn proxy của axios.

Khi nào cần proxy cho axios

  • Thu thập dữ liệu công khai với nhiều địa chỉ để phân tải.
  • Gọi API từ máy chủ nằm trong mạng buộc đi qua proxy.
  • Kiểm thử phản hồi của dịch vụ theo quốc gia hoặc nhà mạng.
  • Gọi dịch vụ chỉ nhận yêu cầu từ địa chỉ đã khai báo.

Trong trình duyệt, proxy do trình duyệt quyết định. Trong Node.js, proxy do code quyết định.

Tuỳ chọn proxy có sẵn của axios

axios có sẵn một tuỳ chọn tên proxy trong cấu hình yêu cầu. Đây là cách ngắn nhất để bắt đầu.

Tuỳ chọn proxy có sẵn của axios

Tuỳ chọn proxy có sẵn của axios

Cú pháp

const axios = require("axios");
 
const res = await axios.get("http://example.com/", {
  proxy: {
    protocol: "http",
    host: "103.1.2.3",
    port: 8080,
    auth: { username: "ana", password: "pw123" },
  },
});

Theo tài liệu cấu hình yêu cầu của axios, tuỳ chọn proxy định nghĩa tên máy chủ, cổng và giao thức của proxy. Trường auth cho biết cần dùng xác thực cơ bản để kết nối tới proxy, và axios sẽ tự thêm tiêu đề Proxy-Authorization.

axios tự đọc biến môi trường

Cũng theo tài liệu trên, anh em có thể khai báo proxy bằng các biến môi trường quen thuộc http_proxy và https_proxy, kèm biến no_proxy là danh sách tên miền không đi qua proxy. Khi chạy trên máy đã có các biến này, axios dùng proxy mà không cần thêm dòng code nào.

Tắt proxy bằng proxy: false

Đặt proxy thành false để axios bỏ qua cả biến môi trường. Giá trị này quan trọng trong hai tình huống: khi muốn một yêu cầu cụ thể đi thẳng, và khi dùng agent riêng như phần sau.

Giới hạn của tuỳ chọn có sẵn

Tuỳ chọn này làm việc tốt với đích là địa chỉ http://. Với đích là https://, kết quả phụ thuộc phiên bản axios và loại proxy. Lý do nằm ở cách proxy xử lý HTTPS: muốn giữ mã hoá đầu cuối, máy khách phải yêu cầu proxy mở một đường hầm bằng phương thức CONNECT rồi mới bắt tay TLS với máy chủ đích bên trong đường hầm. Nhiều phiên bản axios không thực hiện đúng bước này với tuỳ chọn proxy, dẫn tới các lỗi khó hiểu như sai phiên bản giao thức hay yêu cầu không hợp lệ.

Ngoài ra tuỳ chọn có sẵn không hỗ trợ SOCKS.

Tóm lại, tuỳ chọn proxy có sẵn hợp cho thử nghiệm nhanh. Với HTTPS và SOCKS5, là phần lớn nhu cầu thực tế, nên dùng agent.

Axios proxy bằng https-proxy-agent cho đích HTTPS

Cách được cộng đồng dùng rộng rãi và ổn định nhất là giao việc xử lý proxy cho một agent.

Agent mở đường hầm CONNECT

Agent mở đường hầm CONNECT

Agent là gì

Trong Node.js, agent là đối tượng quản lý việc mở và tái sử dụng kết nối cho các yêu cầu HTTP. Tài liệu mô-đun http của Node.js mô tả lớp Agent chịu trách nhiệm quản lý sự tồn tại và tái sử dụng kết nối. Một agent hỗ trợ proxy thay bước "mở kết nối tới máy chủ đích" bằng "mở kết nối tới proxy, yêu cầu đường hầm, rồi trả về kết nối đã thông".

Cài đặt và sử dụng

npm install axios https-proxy-agent
const axios = require("axios");
const { HttpsProxyAgent } = require("https-proxy-agent");
 
const agent = new HttpsProxyAgent("http://ana:pw123@103.1.2.3:8080");
 
const res = await axios.get("https://api.ipify.org?format=json", {
  httpsAgent: agent,
  proxy: false,
});
console.log(res.data);

Ba điểm phải nhớ

  • Truyền agent vào trường httpsAgent khi đích là https://, vào httpAgent khi đích là http://.
  • Luôn đặt proxy: false. Nếu không, axios vừa dùng agent vừa cố áp dụng proxy từ biến môi trường, hai lớp xử lý chồng nhau và gây lỗi.
  • Địa chỉ truyền cho agent thường bắt đầu bằng http://, vì đó là cách kết nối tới proxy. Đích mới là HTTPS.

Bộ thư viện proxy-agents

Gói https-proxy-agent thuộc bộ proxy-agents trên GitHub, gồm nhiều gói anh em: http-proxy-agent cho đích HTTP, socks-proxy-agent cho proxy SOCKS, pac-proxy-agent cho tệp cấu hình tự động, và proxy-agent tự chọn loại agent theo biến môi trường.

Dùng chung một agent

Tạo agent một lần và dùng lại cho nhiều yêu cầu để tận dụng kết nối đã mở. Tạo agent mới cho mỗi yêu cầu vừa chậm vừa tốn tài nguyên. Ngoại lệ là khi mỗi yêu cầu cần một proxy khác nhau.

Tạo sẵn một phiên bản axios

const client = axios.create({
  httpsAgent: agent,
  httpAgent: agent,
  proxy: false,
  timeout: 15000,
});

Mọi lời gọi qua client dùng chung cấu hình. Cách này giữ code gọn và tránh quên proxy: false ở một chỗ nào đó.

Axios proxy với SOCKS5

Proxy SOCKS5 chuyển tiếp ở tầng thấp hơn HTTP và cũng được dùng phổ biến. axios làm việc với SOCKS5 qua gói socks-proxy-agent.

Cài đặt và sử dụng

npm install socks-proxy-agent
const { SocksProxyAgent } = require("socks-proxy-agent");
 
const agent = new SocksProxyAgent("socks5h://ana:pw123@103.1.2.3:1080");
 
const res = await axios.get("https://api.ipify.org?format=json", {
  httpsAgent: agent,
  httpAgent: agent,
  proxy: false,
});

Một agent SOCKS dùng được cho cả đích HTTP lẫn HTTPS, nên truyền vào cả hai trường.

socks5 và socks5h

Với tiền tố socks5, Node.js phân giải tên miền của đích trên máy rồi gửi địa chỉ IP cho proxy. Với socks5h, tên miền được gửi cho proxy phân giải. Dùng socks5h khi không muốn truy vấn DNS đi ra từ máy mình hoặc khi máy không phân giải được tên miền đích.

Đúng cổng cho đúng giao thức

Nhà cung cấp thường cấp hai cổng cho một địa chỉ: một cho HTTP, một cho SOCKS5. Đưa cổng HTTP vào SocksProxyAgent sẽ lỗi bắt tay ngay. Khác biệt giữa hai giao thức có trong bài proxy HTTP và SOCKS5.

Chọn HTTP hay SOCKS5

Với việc gọi API và tải trang web, proxy HTTP qua https-proxy-agent là đủ và ít phụ thuộc hơn. SOCKS5 có ích khi cùng một proxy phải phục vụ cả lưu lượng không phải HTTP trong hệ thống.

Proxy cho fetch gốc của Node.js

Từ Node.js 18, hàm fetch có sẵn mà không cần cài thư viện. Nhiều dự án mới dùng fetch thay axios, nên phần này bổ sung cho đủ bức tranh.

fetch không nhận agent

fetch của Node.js được xây trên thư viện undici, không dùng mô-đun http cũ. Nó không có tuỳ chọn agent. Các gói https-proxy-agent và socks-proxy-agent không dùng được với fetch gốc.

Dùng ProxyAgent của undici

npm install undici
const { ProxyAgent } = require("undici");
 
const dispatcher = new ProxyAgent("http://ana:pw123@103.1.2.3:8080");
 
const res = await fetch("https://api.ipify.org?format=json", { dispatcher });
console.log(await res.json());

Tài liệu của undici mô tả ProxyAgent là một dispatcher chuyển yêu cầu qua proxy. Trường dispatcher là phần mở rộng riêng của Node.js, không có trong fetch của trình duyệt.

Đặt proxy cho mọi lời gọi fetch

Hàm setGlobalDispatcher của undici đặt dispatcher mặc định cho cả tiến trình. Sau đó mọi lời gọi fetch, kể cả từ thư viện bên thứ ba dùng fetch gốc, đều đi qua proxy. Đây là cách xử lý khi một bộ công cụ gọi API không có tuỳ chọn proxy riêng.

fetch và biến môi trường

Khác với axios, fetch gốc truyền thống không tự đọc biến HTTP_PROXY và HTTPS_PROXY. Các bản Node.js gần đây bổ sung cơ chế bật việc này bằng biến môi trường riêng. Hành vi phụ thuộc phiên bản, nên xem hướng dẫn về fetch trên trang Node.js và tài liệu của bản đang dùng. Khai báo dispatcher rõ ràng trong code vẫn là cách cho kết quả dự đoán được.

Bảng đối chiếu

Bảng: Bảng đối chiếu

Thư viện

Cách gắn proxy

Tự đọc biến môi trường

axios

Tuỳ chọn proxy hoặc httpsAgent

Có

fetch gốc của Node.js

dispatcher với ProxyAgent của undici

Phụ thuộc phiên bản

node-fetch

Tuỳ chọn agent

Không

got

Tuỳ chọn agent

Không

Tóm lại, mỗi thư viện có một "cửa" riêng để nhận proxy. Biết thư viện đang dùng thuộc nhóm agent hay nhóm dispatcher là tìm được đúng cửa.

Xoay danh sách proxy với axios

Khi gửi nhiều yêu cầu, dùng một địa chỉ duy nhất dễ chạm giới hạn tần suất của máy chủ đích. Phân tải qua nhiều proxy là cách làm chuẩn.

Xoay danh sách proxy

Xoay danh sách proxy

Xoay vòng đơn giản

const proxies = [
  "http://ana:pw123@103.1.2.3:8080",
  "http://ana:pw123@103.1.2.4:8080",
  "http://ana:pw123@103.1.2.5:8080",
];
const agents = proxies.map((p) => new HttpsProxyAgent(p));
let i = 0;
 
function nextAgent() {
  const a = agents[i % agents.length];
  i += 1;
  return a;
}
 
const res = await axios.get(url, { httpsAgent: nextAgent(), proxy: false });

Tạo sẵn một agent cho mỗi proxy rồi lần lượt chọn. Mỗi agent giữ kết nối riêng tới proxy của nó.

Dùng proxy xoay của nhà cung cấp

Với proxy xoay, anh em chỉ có một địa chỉ cổng vào, còn địa chỉ đầu ra do nhà cung cấp thay đổi. Code đơn giản hơn nhiều: một agent duy nhất. Lưu ý agent giữ kết nối sống, nên với loại xoay theo từng kết nối, cần tắt giữ kết nối hoặc tạo agent mới khi muốn địa chỉ mới.

Với key xoay của ProxyVN, anh em gọi API để lấy proxy hiện tại, tạo agent từ thông tin trả về và dùng tới khi đổi địa chỉ. Cách gọi API có trong bài API đổi IP proxy xoay.

Giữ phiên khi cần

Chuỗi yêu cầu có liên quan với nhau, ví dụ đăng nhập rồi lấy dữ liệu, phải đi bằng cùng một địa chỉ và cùng bộ cookie. Gắn mỗi phiên với một agent cố định thay vì xoay theo từng yêu cầu. Khái niệm này có trong bài sticky session proxy là gì.

Loại bỏ proxy lỗi

Theo dõi số lần lỗi liên tiếp của từng proxy. Vượt ngưỡng thì tạm đưa proxy ra khỏi vòng xoay trong vài phút. Cách thiết kế cơ chế này có trong bài proxy failover và bài proxy pool là gì.

Giới hạn số yêu cầu đồng thời

JavaScript bất đồng bộ cho phép bắn hàng nghìn yêu cầu cùng lúc chỉ bằng một dòng Promise.all. Đây là cách nhanh nhất để bị giới hạn tần suất và làm quá tải proxy. Dùng hàng đợi giới hạn số yêu cầu đồng thời trên mỗi proxy. Cách ước lượng có trong bài 1 proxy chạy được bao nhiêu luồng.

Timeout, thử lại và xử lý lỗi khi dùng axios proxy

Thêm proxy là thêm một điểm có thể hỏng. Code chạy thật cần xử lý điều đó một cách chủ động.

Đặt timeout

axios mặc định không giới hạn thời gian chờ. Một proxy chết lặng im sẽ treo yêu cầu vô thời hạn. Luôn đặt timeout, ví dụ 15 giây. Tuỳ chọn timeout của axios tính thời gian chờ phản hồi. Với giai đoạn mở kết nối tới proxy, dùng thêm AbortSignal.timeout truyền vào trường signal để chặn cả trường hợp kết nối không thiết lập được.

Thử lại có chọn lọc

Không phải lỗi nào cũng nên thử lại.

Bảng: Thử lại có chọn lọc

Loại lỗi

Thử lại

Ghi chú

Lỗi mạng: ECONNRESET, ETIMEDOUT

Có

Nên đổi proxy ở lần thử sau

407 từ proxy

Không

Lỗi cấu hình, thử lại vô ích

429 từ máy chủ đích

Có, sau khi chờ

Tôn trọng tiêu đề Retry-After

403 từ máy chủ đích

Tuỳ

Có thể địa chỉ bị từ chối, thử địa chỉ khác

5xx từ máy chủ đích

Có, giới hạn số lần

Chờ tăng dần giữa các lần

4xx khác

Không

Lỗi của yêu cầu

Phân biệt các mã chặn có trong bài vì sao mua proxy bị block và bài mua proxy bị lỗi 429.

Chờ tăng dần

Giữa các lần thử lại, chờ lâu dần: một giây, hai giây, bốn giây, cộng thêm một khoảng ngẫu nhiên nhỏ. Thử lại tức thì nhiều lần chỉ làm tình hình tệ hơn cho cả anh em lẫn máy chủ đích.

Phân biệt lỗi của proxy và lỗi của đích

Khi axios ném lỗi, đối tượng lỗi có trường code cho lỗi mạng và trường response cho phản hồi HTTP. Lỗi không có response thường xảy ra trước khi tới được máy chủ đích, tức là ở proxy hoặc mạng. Lỗi có response là máy chủ đích, hoặc proxy với mã 407, đã trả lời. Ghi cả hai trường vào nhật ký giúp việc phân tích về sau nhanh hơn nhiều.

Ghi nhật ký theo từng proxy

Lưu cho mỗi yêu cầu: proxy đã dùng, mã phản hồi, thời gian. Sau một ngày chạy, anh em biết proxy nào chậm, proxy nào hay lỗi, và tỷ lệ thành công thật. Cách đo có trong bài proxy success rate.

Lỗi thường gặp khi dùng axios proxy

Bảng dưới gom các lỗi phổ biến và hướng xử lý.

Lỗi thường gặp khi dùng axios qua proxy

Lỗi thường gặp khi dùng axios qua proxy

Bảng: Lỗi thường gặp khi dùng axios proxy

Thông báo

Nguyên nhân thường gặp

Hướng xử lý

ECONNREFUSED

Sai cổng, proxy không chạy

Kiểm tra địa chỉ, cổng

ETIMEDOUT

Proxy không phản hồi, bị tường lửa chặn

Thử proxy bằng cURL

407 Proxy Authentication Required

Sai user, password, ký tự đặc biệt

Mã hoá ký tự đặc biệt trong URL

write EPROTO, wrong version number

Dùng tuỳ chọn proxy có sẵn với đích HTTPS, hoặc sai tiền tố

Chuyển sang https-proxy-agent, proxy: false

socket hang up, ECONNRESET

Proxy cắt kết nối

Thử lại, đổi proxy

self signed certificate in certificate chain

Proxy công ty giải mã HTTPS

Khai báo chứng chỉ gốc

Proxy đặt rồi mà IP không đổi

Truyền agent sai trường, quên proxy: false

httpsAgent cho đích HTTPS

Lỗi sai phiên bản giao thức

Dòng lỗi có cụm wrong version number nghĩa là một bên gửi dữ liệu TLS trong khi bên kia chờ HTTP thường, hoặc ngược lại. Hai nguyên nhân hay gặp: viết https:// cho địa chỉ một proxy chỉ nói HTTP, hoặc dùng tuỳ chọn proxy có sẵn cho đích HTTPS trên phiên bản axios xử lý chưa đúng. Chuyển sang agent là hết.

Lỗi chứng chỉ trong mạng công ty

Proxy công ty kiểm tra HTTPS sẽ thay chứng chỉ. Node.js không tin chứng chỉ đó. Cách đúng là đặt biến môi trường NODE_EXTRA_CA_CERTS trỏ tới tệp chứng chỉ gốc của công ty. Không nên đặt rejectUnauthorized thành false hay biến NODE_TLS_REJECT_UNAUTHORIZED bằng 0 trong code chạy thật, vì khi đó chương trình chấp nhận mọi chứng chỉ, kể cả của kẻ đứng giữa.

Kiểm tra địa chỉ đầu ra

Trước khi chạy tác vụ chính, gọi một dịch vụ trả về địa chỉ IP và in ra. Nếu thấy địa chỉ của máy chủ thay vì của proxy, cấu hình chưa có hiệu lực. Bước này tốn một yêu cầu và tránh được cả một lô chạy sai.

Tách lỗi code khỏi lỗi proxy

curl -x http://ana:pw123@103.1.2.3:8080 https://api.ipify.org

cURL chạy được nghĩa là proxy tốt, vấn đề ở code. cURL cũng lỗi nghĩa là vấn đề ở proxy hoặc mạng. Lỗi xác thực xem thêm bài sửa lỗi 407 proxy authentication required.

Thực hành tốt khi viết code dùng axios proxy

Vài thói quen giúp code bền hơn và an toàn hơn khi đưa vào chạy thật.

Không ghi cứng thông tin proxy

Đọc địa chỉ, tên đăng nhập, mật khẩu từ biến môi trường hoặc trình quản lý bí mật. Thông tin ghi cứng trong mã nguồn sẽ theo kho mã đi khắp nơi.

Mã hoá thông tin xác thực trong URL

Khi ghép chuỗi URL của proxy từ các phần rời, dùng hàm encodeURIComponent cho tên đăng nhập và mật khẩu. Một ký tự @ trong mật khẩu là đủ làm hỏng cả địa chỉ.

Tiêu đề yêu cầu nhất quán

Proxy chỉ đổi địa chỉ IP. Tiêu đề User-Agent mặc định của axios ghi rõ đây là axios. Với việc gọi API của chính mình thì không sao. Với việc tải trang công khai, đặt tiêu đề phù hợp và nhất quán, xem bài User-Agent là gì.

Tôn trọng máy chủ đích

Đọc điều khoản và tệp robots.txt của website. Chỉ thu thập dữ liệu công khai, giữ nhịp độ vừa phải, dừng lại khi nhận 429. Proxy là công cụ phân tải và kiểm thử, không phải giấy phép gửi yêu cầu vô hạn.

Biết khi nào cần trình duyệt

axios chỉ nhận về mã nguồn thô. Trang dựng nội dung bằng JavaScript cần trình duyệt không giao diện. Cấu hình proxy cho các công cụ đó có trong bài proxy Playwright và bài cách sử dụng proxy trong Puppeteer.

Chọn loại proxy theo việc

  • Gọi API, tải dữ liệu không nhạy cảm loại địa chỉ: proxy datacenter, nhanh và băng thông lớn.
  • Kiểm thử hiển thị theo nhà mạng trong nước: proxy dân cư tĩnh hoặc 4G.
  • Thu thập số lượng lớn cần phân tải: key xoay có API.

ProxyVN cung cấp đủ các nhóm trên với IP Viettel, VNPT, FPT, mỗi địa chỉ có cổng HTTP và cổng SOCKS5, xác thực bằng user/password. Anh em có thể mua proxy tại ProxyVN và đưa thẳng vào HttpsProxyAgent hoặc SocksProxyAgent.

Axios proxy so với cách làm ở các ngôn ngữ khác

Nhiều nhóm dùng lẫn Node.js và Python. So sánh nhanh giúp chuyển đổi kiến thức giữa hai bên.

Điểm giống

Cả axios lẫn thư viện requests của Python đều nhận proxy theo từng yêu cầu, đều đọc biến môi trường, đều dùng địa chỉ dạng URL có tên đăng nhập và mật khẩu. Hướng dẫn cho Python có trong bài cài đặt Python proxy từ thư viện Request.

Điểm khác

requests xử lý đường hầm cho đích HTTPS ngay trong tuỳ chọn proxies. axios cần agent để làm việc đó một cách ổn định. requests cần cài thêm phần hỗ trợ SOCKS, axios cần gói socks-proxy-agent. Mô hình bất đồng bộ của Node.js khiến việc giới hạn số yêu cầu đồng thời trở thành trách nhiệm của người viết code.

Gọi API của các dịch vụ AI

Các bộ công cụ chính thức cho Node.js của nhiều dịch vụ AI dùng fetch bên dưới. Muốn đi qua proxy, truyền dispatcher hoặc agent theo hướng dẫn của từng bộ. Ví dụ đầy đủ có trong bài proxy cho API OpenAI ChatGPT.

Câu hỏi thường gặp về axios proxy

Phần này trả lời nhanh các thắc mắc phổ biến.

Axios proxy có hoạt động trong trình duyệt không

Không. Trong trình duyệt, đường đi của yêu cầu do trình duyệt quyết định. Tuỳ chọn proxy chỉ có tác dụng trong Node.js.

Vì sao tuỳ chọn proxy của axios lỗi với địa chỉ https

Vì đích HTTPS cần đường hầm CONNECT qua proxy, và tuỳ chọn có sẵn không xử lý việc này ổn định trên mọi phiên bản. Dùng https-proxy-agent kèm proxy: false.

Có cần đặt cả httpAgent và httpsAgent không

Đặt theo đích. Đích HTTPS đọc httpsAgent, đích HTTP đọc httpAgent. Nếu chương trình gọi cả hai loại, đặt cả hai.

Axios có tự dùng biến HTTPS_PROXY không

Có, trong Node.js. Muốn tắt, đặt proxy: false.

Dùng proxy có làm axios chậm đi không

Có thêm một chặng nên có thêm độ trễ. Dùng lại agent để tận dụng kết nối đã mở giúp giảm đáng kể thời gian cho các yêu cầu sau.

Làm sao mỗi yêu cầu một IP khác nhau

Dùng danh sách proxy và xoay agent, hoặc dùng proxy xoay của nhà cung cấp. Với loại xoay theo kết nối, tắt giữ kết nối để mỗi yêu cầu mở kết nối mới.

Một agent dùng được cho bao nhiêu yêu cầu

Không có giới hạn cứng. Agent quản lý một nhóm kết nối và tái sử dụng chúng. Giới hạn thực tế đến từ số kết nối đồng thời mà gói proxy cho phép, nên hãy đặt số kết nối tối đa của agent thấp hơn con số đó để tránh bị proxy từ chối giữa chừng.

Có nên tạo agent mới cho mỗi yêu cầu không

Chỉ khi mỗi yêu cầu cần một proxy khác hoặc cần buộc mở kết nối mới. Trường hợp còn lại, dùng chung agent nhanh hơn rõ rệt vì bỏ được bước bắt tay với proxy và với máy chủ đích ở các yêu cầu sau.

Axios proxy có dùng được trong TypeScript không

Có. Các gói agent đều có khai báo kiểu đi kèm. Cú pháp nhập đổi sang dạng import.

Kết luận

Axios proxy trong Node.js có hai đường: tuỳ chọn proxy có sẵn cho trường hợp đơn giản, và agent như https-proxy-agent, socks-proxy-agent kèm proxy: false cho HTTPS và SOCKS5. fetch gốc của Node dùng ProxyAgent của undici. Đặt timeout, thử lại có chọn lọc và giới hạn số yêu cầu đồng thời để hệ thống chạy bền. Cần proxy cho ứng dụng Node.js, liên hệ Proxy.vn - Nhà cung cấp dịch vụ proxy chất lượng hàng đầu Việt Nam để chọn loại phù hợp với axios proxy của mình.

TIN TỨC LIÊN QUAN