HTTP туннель
Обзор
HTTP туннель позволяет предоставить доступ к сайту, API, GraphQL и Websocket-серверам.
Примеры
Базовый пример
tuna http 8080
С передачей IP-адреса
tuna http 10.0.0.1:8080
С зарезервированным адресом
На платном тарифе можно резервировать адреса и после перезапуска туннеля адрес останется прежним:
tuna http 8080 --subdomain=billing
В unix системах также можно использовать переменную окружения TUNA_SUBDOMAIN
:
TUNA_SUBDOMAIN="billing" tuna http 8080
Если вы видите ошибку Domain already reserved
, значит домен в этой локации уже занят другим пользователем, попробуйте другое имя.
tuna http 8080 --subdomain=any-you-name
Резервирование происходит автоматически при добавлении аргумента. Все зарезервированные вами домены можно посмотреть в личном кабинете.
Файловый сервер
tuna http --file-server ./
С поддержкой одностраничных приложений:
tuna http --file-server-spa ./
Изменение заголовков запроса
Добавление заголовка перед тем, как запрос попадет в локальный сервис:
tuna http 8080 --request-header="host:tuna.am"
Изменение заголовков ответа
Дабавление заголовка для передачи клиенту (пользователю):
tuna http 8080 --response-header="env:test"
Защита базовой аутентификацией
tuna http 8080 --basic-auth="login:password"
Защита API токеном
tuna http 8080 --key-auth="my-secret-key"
Доступ к ресурсу будет предоставлен только в том случае, если будет передано корректное значение заголовка X-Token
.
Rate limiter
Ограничение по числу запросов в секунду, попадаемых в ваш сервис:
tuna http 8080 --rate-limit=2
При достижении лимита будет возвращена ошибка 429 Too Many Requests
.
Ограничение доступа по подсетям IP
Вы можете определить белый список подсетей в CIDR-формате:
tuna http 8080 --cidr-allow="10.0.0.1/32"
Либо запретить доступ из определенных подсетей:
tuna http 8080 --cidr-deny="10.0.0.1/32"
Поведение
Hop-by-hop
tuna не поддерживает hop-by-hop заголовки за исключением заголовка Connection: upgrade
, необходимого для работы Websocket соединений.
HTTP и HTTPS
При старте туннеля отображается ссылка на HTTPS, но обращаться можно и по HTTP.