Перейти к содержимому

Сеть и прокси

Задайте стандартные переменные прокси и исключите loopback-адреса. ZubrCode общается с фоновой службой по локальному HTTP, поэтому исключение обязательно, когда прокси настроен в окружении CLI.

Окно терминала
export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080
export NO_PROXY=localhost,127.0.0.1,::1
zubrcode

HTTP_PROXY обслуживает HTTP-адреса, HTTPS_PROXY — HTTPS; сам адрес прокси в обоих случаях может быть http://. NO_PROXY — список хостов и адресов через запятую, к которым идёт прямое соединение.

Переменные из оболочки действуют на службу, только если она запускается из этой оболочки. Сохраните их в управляемой конфигурации службы, чтобы последующие запуски пользовались теми же настройками сети:

Окно терминала
zubrcode service set env HTTP_PROXY http://proxy.example.com:8080
zubrcode service set env HTTPS_PROXY http://proxy.example.com:8080
zubrcode service set env NO_PROXY localhost,127.0.0.1,::1
zubrcode service start

Изменение переменной останавливает работающую службу: service start запускает её с новым окружением. NO_PROXY держите и в окружении CLI, если там задан прокси: переменные службы относятся к процессу сервера, а не CLI. Удалить сохранённую переменную — zubrcode service unset env HTTPS_PROXY.

Для прокси с учётными данными в URL укажите логин и пароль в каждом адресе прокси; экранируйте символы вроде @, : и / в процентной кодировке:

Окно терминала
export HTTPS_PROXY='http://user:p%40ssword@proxy.example.com:8080'

Для фоновой службы сохраните полный URL — он лежит в приватной конфигурации службы и виден в zubrcode service get env, поэтому не показывайте этот вывод посторонним:

Окно терминала
zubrcode service set env HTTPS_PROXY 'http://user:p%40ssword@proxy.example.com:8080'

Если прокси или адрес назначения использует сертификат частного центра сертификации, укажите PEM-файл в NODE_EXTRA_CA_CERTS — дополнительные центры добавятся в хранилище доверия при старте процесса:

Окно терминала
export NODE_EXTRA_CA_CERTS=/etc/company/ca.pem
zubrcode --standalone

Для фоновой службы сохраните путь и перезапустите её:

Окно терминала
zubrcode service set env NODE_EXTRA_CA_CERTS /etc/company/ca.pem
zubrcode service start

--standalone и serve используют окружение собственного процесса — zubrcode service set env их не настраивает. Передавайте переменные в команде:

Окно терминала
HTTP_PROXY=http://proxy.example.com:8080 \
HTTPS_PROXY=http://proxy.example.com:8080 \
NO_PROXY=localhost,127.0.0.1,::1 \
zubrcode --standalone

После настройки убедитесь, что CLI достаётся до фоновой службы:

Окно терминала
zubrcode api get /api/info

Успешный ответ проверяет локальную связь клиент — служба. Обычный запрос к модели проверит исходящий прокси и путь сертификатов службы.