Выходны проксі
Частка мадэляў недаступна непасрэдна з сервераў у Расіі. Каб гэта не ператваралася ў ручную наладу ў кожнага аператара, AiHummer выдае адрас выходнага проксі пры ўсталёўцы і сам вырашае, якім шляхам адправіць запыт.
Галоўнае ў двух сказах
Адрас проксі прыходзіць ад вендора і кладзецца ў прыватны файл на серверы — у
gateway.env ён не захоўваецца і ў журналы не трапляе. Калі проксі не зададзены або
недаступны, запыт ідзе непасрэдна: інстанс працягвае працаваць, а не спыняецца.
Што куды ходзіць
| Куды | Як ідзе |
|---|---|
| Знешняя мадэль (замежны правайдар) | праз проксі, калі ён наладжаны і прыдатны |
| Тая ж мадэль пры недаступным проксі | непасрэдна, з папярэджаннем у журнале |
localhost, *.localhost, унутраны адрас інстанса |
заўсёды непасрэдна, міма проксі |
Апошні радок важны: зварот інстанса да самога сябе ніколі не абгортваецца у проксі, інакш лакальныя выклікі залежалі б ад знешняга канала.
Запасны шлях: адсутнасць проксі — не адмову
Да версіі 1.2.8 незаданы або не працуючы проксі азначаў памылку запыту. Цяпер паводзіны іншыя:
- проксі наладжаны і прыдатны → запыт ідзе праз яго;
- проксі не наладжаны → запыт ідзе непасрэдна, у журнал адзін раз запісваецца папярэджанне з прычынай «не наладжаны»;
- проксі наладжаны, але значэнне непрыдатна → запыт ідзе непасрэдна, прычына ў папярэджанні — «налады непрыдатныя».
Папярэджанне выводзіцца адзін раз за запуск, а не на кожны запыт: інакш яно запоўніла б журнал і перастала чытацца.
:::note Непасрэдны шлях — гэта запасны варыянт, а не замена проксі. Калі правайдар не прымае запыты з расійскіх адрасоў, непасрэдны запыт да яго не пройдзе — але адмовіць ужо правайдар, і ў адказе будзе бачна менавіта гэта, а не агульнае «не ўдалося прымяніць наладу». :::
Дзе захоўваецца адрас
Значэнне жыве ў прыватным файле, шлях да якога задае
AIHUMMER_OUTBOUND_PROXY_URL_FILE. Патрабаванні да файла:
- абсалютны шлях;
- звычайны файл, правы не шырэй
0600; - памер да 4096 байт.
Так зроблена наўмысна: адрас проксі змяшчае пароль, таму ён не павінен ляжаць
у gateway.env, які чытаюць і капіруюць пры абслугоўванні.
:::caution
Зменная AIHUMMER_OUTBOUND_PROXY_URL з адрасам «прамо ў значэнні» існуе толькі для зборкаў распрацоўкі. Выпускныя зборкі яе не чытаюць — у прадуктыве прымаецца выключна шлях да файла.
:::
Якія адрасы прымаюцца
Праверка аднолькавая і ў момант выдачы налад, і ў момант выкарыстання, таму непрыдатнае значэнне адхіляецца адразу, а не ператвараецца пазней у «замежныя мадэлі зноў не працуюць» без адзінай радкі ў журнале.
Прымаецца: схема http або https, непусты хост, без радка запыту, без
фрагмента, без шляху (акрамя /).
🔴 Голы http на нелакальным хосце адхіляецца наўмысна. Па незашыфраванаму
http загаловак Proxy-Authorization ідзе адкрытым тэкстам пры кожным
злучэнні — гэта значыць пароль проксі вытек бы бесперапынна. Для нелакальнага хоста
выкарыстоўвайце https.
Як праверыць, што адбываецца
# Што зараз наладжана (значэнне не друкуецца — толькі факт наладжвання)
aihummer doctor
# Журнал шлюза: папярэджанне аб непасрэдным шляху, калі проксі не прымяняецца
journalctl -u aihummer-gateway -n 200 | grep -i проксі
Адмова прымянення налад называе прычыну — «не наладжаны», «налады непрыдатныя» — замест агульнага «не ўдалося прымяніць». Гэта адрознівае «адрас не даехаў» ад «адрас даехаў, але няправільны».
Што рабіць аператару
Звычайна — нічога: адрас выдаецца пры ўсталёўцы. Умяшанне патрэбна ў двух выпадках.
- Свой проксі замест вендорскага. Пакладзіце адрас у прыватны файл з правамі
0600і ўкажыце шлях уAIHUMMER_OUTBOUND_PROXY_URL_FILE, затым перазапусціце шлюз. - Проксі не патрэбны зусім (інстанс стаіць там, адкуль мадэлі даступныя непасрэдна). Нічога ўказваць не трэба: незаданы проксі азначае непасрэдны запыт.