Kieruj tylko jeden host przez proxy HTTPX
Zamontuj transport proxy dla wybranego hosta, pozostawiając zwykłą trasę rezerwową klienta bezpośrednią.
Daj wybranemu hostowi transport proxy, a reszcie klienta jawny transport bezpośredni:
import httpx
direct = httpx.HTTPTransport(trust_env=False)
proxied = httpx.HTTPTransport(
proxy="http://203.0.113.10:8080",
trust_env=False,
)
with httpx.Client(
transport=direct,
mounts={"all://example.com": proxied},
trust_env=False,
timeout=15,
) as client:
response = client.get("https://example.com/")
print(response.status_code)
other = client.get("https://example.org/")
print(other.status_code)
Zastąp adres dokumentacyjny zamierzonym punktem HTTP usługi lub z listy proxy HTTP. Tutaj example.com używa montowania, a example.org bezpośredniego domyślnego transportu. Oba wywołania są ważne: sukces tylko hosta z proxy nie weryfikuje trasy rezerwowej.
| Szczegół dopasowania | Efekt |
|---|---|
all://example.com | Dokładny host we wszystkich schematach docelowych. |
| Subdomena | Osobny wybór; świadomie użyj obsługiwanego symbolu wieloznacznego, jeśli też ma pasować. |
| Ścieżka | Montowania wybierają wzorce schematu, hosta i opcjonalnego portu, nie ścieżki URL. |
| Przekierowanie do innego hosta | Gdy śledzenie przekierowań jest włączone, dopasowywany jest nowy URL, który może użyć bezpośredniej trasy rezerwowej. |
Przykład wyłącza odczyt środowiska w kliencie i obu transportach. Inna szeroka reguła proxy lub pasujące montowanie może zmienić wynik przy adaptacji. Jeśli wdrożenie zależy od konfiguracji CA ze środowiska, podaj to zaufanie jawnie albo zachowaj właściwą politykę wykrywania, zamiast stracić je po cichu.
Nie potrzeba zmiany proxy całej maszyny. W kontrolach tras zachowaj zarówno zamierzony host z proxy, jak i świadomie wybrany host rezerwowy.