Cấu hình proxy
Cấu hình định tuyến proxy theo URL cho AnyCrawl
Cấu hình proxy
AnyCrawl hỗ trợ định tuyến proxy linh hoạt theo mẫu URL. Bạn có thể cấu hình proxy khác nhau cho từng website hoặc endpoint API.
Chế độ proxy
AnyCrawl hỗ trợ bốn chế độ proxy có thể chỉ định trong request API:
| Mode | Mô tả |
|---|---|
auto | Tự quyết giữa proxy cơ bản và stealth. Bắt đầu với base khi có; nếu base không khả dụng hoặc có retry/lỗi, nâng cấp/chuyển sang stealth. |
base | Dùng proxy cấu hình trong ANYCRAWL_PROXY_URL (mặc định) |
stealth | Dùng proxy cấu hình trong ANYCRAWL_PROXY_STEALTH_URL (thường là residential hoặc premium) |
| Custom URL | Chuỗi URL proxy đầy đủ (ví dụ http://user:pass@proxy:8080), trong response trả về dạng custom |
Ví dụ sử dụng
{
"url": "https://example.com",
"engine": "playwright",
"proxy": "auto"
}{
"url": "https://example.com",
"engine": "playwright",
"proxy": "stealth"
}{
"url": "https://example.com",
"engine": "playwright",
"proxy": "http://custom-proxy:8080"
}Hành vi timeout (API Scrape)
timeoutở cấp request luôn được ưu tiên.- Nếu
proxylàstealthhoặcautovà không cótimeout, AnyCrawl dùngANYCRAWL_STEALTH_TIMEOUT_MS(mặc định:120000). - Với chế độ
basehoặc URL proxy tùy chỉnh mà không cótimeoutrõ ràng, AnyCrawl dùng60000.
Cách cấu hình
Cách 1: Cấu hình proxy đơn giản (ANYCRAWL_PROXY_URL)
Với trường hợp muốn dùng cùng một proxy cho mọi request, đặt biến môi trường ANYCRAWL_PROXY_URL:
# Một proxy
export ANYCRAWL_PROXY_URL=http://username:password@proxy.example.com:8080
# Nhiều proxy (chế độ tầng)
export ANYCRAWL_PROXY_URL=http://proxy1:8080,http://proxy2:8080,http://proxy3:8080Khi cung cấp nhiều proxy (phân tách bằng dấu phẩy), AnyCrawl dùng chiến lược proxy tầng (tiered):
- Mọi request bắt đầu với proxy đầu tiên (tier 0)
- Nếu proxy lỗi với một domain, AnyCrawl tự chuyển tier tiếp theo cho domain đó
- Cung cấp failover thông minh và tối ưu sử dụng proxy
Đây là cách đơn giản nhất khi không cần định tuyến theo URL.
Cách 2: File cấu hình nâng cao (ANYCRAWL_PROXY_CONFIG)
Để định tuyến proxy theo URL, tạo file JSON (ví dụ proxy-config.json) và đặt biến ANYCRAWL_PROXY_CONFIG trỏ tới đường dẫn file:
ANYCRAWL_PROXY_CONFIG=/path/to/proxy-config.jsonLưu ý: Nếu cả ANYCRAWL_PROXY_URL và ANYCRAWL_PROXY_CONFIG đều được đặt, quy tắc trong file cấu hình được ưu tiên, còn ANYCRAWL_PROXY_URL làm fallback cho URL không khớp quy tắc nào.
Loại quy tắc
AnyCrawl hỗ trợ ba loại quy tắc proxy, áp dụng theo thứ tự ưu tiên:
1. Quy tắc URL (ưu tiên cao nhất)
Khớp URL chính xác. Dùng khi cần một proxy cụ thể cho một endpoint.
{
"url": "https://api.example.com/v1/data",
"proxy": "http://username:password@proxy1.example.com:8080"
}2. Quy tắc pattern (ưu tiên trung bình)
Khớp mẫu URL đầy đủ với ký tự đại diện. Hữu ích khi khớp đường dẫn hoặc giao thức cụ thể.
{
"pattern": "https://*.github.com/api/*",
"proxy": "http://username:password@proxy2.example.com:8080"
}3. Quy tắc domain (ưu tiên thấp nhất)
Chỉ khớp theo domain. Định tuyến mọi request tới domain qua một proxy cụ thể.
{
"domain": "*.gov.au",
"proxy": "http://username:password@proxy3.example.com:8080"
}Mẫu ký tự đại diện
*— Khớp bất kỳ số ký tự nào?— Khớp đúng một ký tự- Mẫu không phân biệt hoa thường
Ví dụ
*.example.com— Khớpapi.example.com,www.example.com,test.example.comapi-?.example.com— Khớpapi-1.example.com,api-2.example.com, không khớpapi-10.example.comhttps://*.example.com/api/*— Khớp mọi URL HTTPS trên subdomain của example.com có đường dẫn/api/
Ví dụ cấu hình đầy đủ
{
"rules": [
{
"url": "https://api.example.com/v1/users",
"proxy": "http://premium-proxy.example.com:8080"
},
{
"pattern": "https://api.github.com/*",
"proxy": "http://github-proxy.example.com:8080"
},
{
"domain": "*.gov.au",
"proxy": "http://au-proxy.example.com:8080"
}
]
}Định dạng URL proxy
AnyCrawl hỗ trợ nhiều định dạng URL proxy:
- HTTP:
http://username:password@proxy.example.com:8080 - HTTPS:
https://username:password@proxy.example.com:8443
Gỡ lỗi
Bạn sẽ thấy log dạng:
Using proxy from request userData: http://custom-proxy:8080
Found proxy for URL https://example.com: http://proxy.example.com:8080 By matching a rule.
Proxy matched by domain pattern: *.gov.au → http://proxy.example.com:8080
Using tiered proxy: http://default-proxy:8080Ví dụ thứ tự ưu tiên
Với URL https://api.github.com/repos/owner/repo, các quy tắc được kiểm tra theo thứ tự:
- Khớp URL:
"url": "https://api.github.com/repos/owner/repo" - Khớp pattern:
"pattern": "https://api.github.com/*" - Khớp domain:
"domain": "*.github.com"
Quy tắc khớp đầu tiên được áp dụng.
Thực hành tốt
- Dùng quy tắc domain cho nhu cầu proxy rộng (ví dụ mọi request tới site chính phủ một nước)
- Dùng quy tắc pattern khi cần khớp đường dẫn hoặc giao thức cụ thể
- Dùng quy tắc URL cho endpoint chính xác cần xử lý đặc biệt
- Thứ tự trong file không quan trọng — ưu tiên do loại quy tắc quyết định
- Kiểm tra mẫu bằng log debug để đảm bảo khớp đúng ý
Hệ thống proxy tầng
Khi dùng nhiều proxy với ANYCRAWL_PROXY_URL, AnyCrawl áp dụng hệ thống proxy tầng thông minh:
Cách hoạt động
- Trạng thái ban đầu: Mọi domain bắt đầu với proxy đầu tiên (tier 0)
- Phát hiện lỗi: Khi proxy lỗi với một domain, domain đó được nâng lên tier tiếp theo
- Theo domain: Mỗi domain giữ mức tier riêng độc lập
Kịch bản ví dụ
export ANYCRAWL_PROXY_URL=http://fast-proxy:8080,http://stable-proxy:8080,http://backup-proxy:8080- Request ban đầu tới
example.com→ Dùngfast-proxy:8080(tier 0) - Nếu
fast-proxylỗi vớiexample.com→ Chuyểnstable-proxy:8080(tier 1) - Trong lúc đó
github.comcó thể vẫn dùngfast-proxy:8080nếu ổn định - Hệ thống định kỳ thử lại
fast-proxychoexample.comđể kiểm tra đã phục hồi chưa
Lợi ích
- Failover tự động: Không cần can thiệp thủ công khi proxy lỗi
- Tối ưu theo domain: Mỗi domain dùng proxy tốt nhất có sẵn
- Hiệu quả tài nguyên: Proxy lỗi không bị bỏ hẳn
- Tự phục hồi: Tự quay lại proxy tối ưu khi chúng hoạt động trở lại
Ví dụ đầy đủ: dùng cả hai cách
Thiết lập mẫu kết hợp:
# Proxy mặc định cho mục đích chung
export ANYCRAWL_PROXY_URL=http://default-proxy:8080
# Định tuyến theo URL cho site cụ thể
export ANYCRAWL_PROXY_CONFIG=/path/to/proxy-config.jsonVới proxy-config.json:
{
"rules": [
{
"domain": "*.gov.au",
"proxy": "http://au-residential-proxy:8080"
},
{
"pattern": "https://api.*.com/*",
"proxy": "http://api-optimized-proxy:3128"
}
]
}Kết quả:
https://www.homeaffairs.gov.au/→ Dùngau-residential-proxy:8080(khớp domain)https://api.github.com/repos→ Dùngapi-optimized-proxy:3128(khớp pattern)https://example.com/→ Dùngdefault-proxy:8080(fallbackANYCRAWL_PROXY_URL)
Tóm tắt biến môi trường
| Variable | Mục đích | Ví dụ |
|---|---|---|
ANYCRAWL_PROXY_URL | Proxy cơ bản (một hoặc nhiều) | http://proxy:8080 hoặc http://p1:8080,http://p2:8080 |
ANYCRAWL_PROXY_STEALTH_URL | Proxy stealth/premium (residential) | http://residential-proxy:8080 |
ANYCRAWL_PROXY_STEALTH_CREDITS | Credits phụ khi dùng stealth proxy | 5 |
ANYCRAWL_STEALTH_TIMEOUT_MS | Timeout mặc định cho proxy=stealth và proxy=auto khi không có timeout trong request | 120000 |
ANYCRAWL_PROXY_CONFIG | Đường dẫn file JSON định tuyến theo URL | /path/to/proxy-config.json |
Thứ tự ưu tiên
- Cao nhất: Chế độ proxy hoặc URL tùy chỉnh trong tùy chọn request
Hoặc URL tùy chỉnh:{ "url": "https://example.com", "engine": "playwright", "proxy": "stealth" }{ "url": "https://example.com", "engine": "cheerio", "proxy": "http://custom-proxy:8080" } - Cao: Quy tắc theo URL từ
ANYCRAWL_PROXY_CONFIG - Thấp: Proxy tầng từ
ANYCRAWL_PROXY_URL(fallback)