ให้ Undici อ่านตัวแปรพร็อกซีจากสภาพแวดล้อม
เลือกใช้ EnvHttpProxyAgent อย่างตั้งใจ และแยกลำดับความสำคัญตัวพิมพ์เล็ก กฎข้าม URL พร็อกซีที่เก็บไว้ และ no_proxy แบบเปลี่ยนได้
ใช้ EnvHttpProxyAgent เมื่อต้องให้สภาพแวดล้อมของโปรเซสเลือกเส้นทาง ใช้Undici ProxyAgent แบบระบุชัดเมื่อจุดเชื่อมต่อควรอยู่ในการตั้งค่าไคลเอนต์ ต้องส่งให้คำขอจริง การสร้าง agent อย่างเดียวไม่เปลี่ยนการเรียก fetch ใด:
import { EnvHttpProxyAgent, fetch } from 'undici';
const dispatcher = new EnvHttpProxyAgent();
try {
const response = await fetch("https://example.com/", {
dispatcher,
signal: AbortSignal.timeout(15000),
});
console.log(response.status);
await response.arrayBuffer();
} finally {
await dispatcher.close();
}บันทึกเป็น proxy-check.mjs ในระบบโมดูล ES ที่มี Undici การเรียกแบบ POSIX นี้ให้สองเส้นทางพร็อกซีและรายการข้ามที่ว่าง:
http_proxy=http://203.0.113.10:8080 \
https_proxy=http://203.0.113.10:8080 \
no_proxy= \
node proxy-check.mjsแทนจุดเชื่อมต่อตัวอย่างด้วย HTTP พร็อกซีของคุณหรือรายการจากรายการ HTTP พร็อกซี การกำหนดค่าเหล่านี้เป็นของการรันครั้งนี้ เชลล์อื่นใช้ไวยากรณ์ต่างกัน
ใน Undici 8.12.3 ตัวพิมพ์เล็ก http_proxy, https_proxy และ no_proxy สำคัญกว่าคู่ตัวพิมพ์ใหญ่เมื่อมีทั้งสองแบบ ปลายทาง HTTP และ HTTPS เลือกค่าของตน การมีเฉพาะ HTTP ยังเป็นค่าทดแทนให้ HTTPS ได้ แต่มีเฉพาะ HTTPS ไม่ครอบคลุม HTTP อย่าถือว่าธรรมเนียม ALL_PROXY ของไคลเอนต์อื่นใช้ได้
| ข้อมูลเข้า | รุ่นนี้ใช้เมื่อใด |
|---|---|
| สภาพแวดล้อมพร็อกซี HTTP/HTTPS | เลือกขณะสร้าง agent เมื่อเปลี่ยนจุดเชื่อมต่อเหล่านี้ให้สร้าง dispatcher ใหม่ |
no_proxy จากสภาพแวดล้อม | ตรวจใหม่เมื่อส่งคำขอ |
noProxy ในคอนสตรักเตอร์ | ตรึงนโยบายข้ามอย่างชัดเจน แทนการตามค่าที่เปลี่ยนในสภาพแวดล้อมภายหลัง |
กฎข้ามจับคู่โฮสต์และพอร์ตที่ระบุเพิ่มเติมได้ เครื่องหมายดอกจันตัวเดียวข้ามพร็อกซีให้ทุกคำขอ ถ้าพร็อกซีไม่เห็นทราฟฟิกให้ตรวจการจับคู่ปลายทาง
บน Windows โปรเซสหลักไม่แยกตัวพิมพ์เล็กใหญ่ในชื่อสภาพแวดล้อม ดังนั้น HTTP_PROXY กับ http_proxy ไม่ใช่ค่าที่แยกกัน สำเนาสภาพแวดล้อมของ Node Worker มีความต่างด้านการแยกตัวพิมพ์ตามเอกสาร คำนึงถึงเรื่องนี้ก่อนตั้งสองรูปแบบเพื่อทดสอบลำดับ ตัวอย่างปิด dispatcher หลังทำงาน ให้เก็บไว้ระหว่างคำขอซ้ำที่ต้องใช้นโยบายจุดเชื่อมต่อชุดเดิมที่บันทึกไว้