Это — старая версия документа!
Прокси должен стоять внутри вашей сети, и абоненты должны иметь к нему доступ напрямую, без NAT. Таким образом имеется возможность передать ваши внутренние серые адреса в заголовке X-Forwarded-For на наш сервер, чтобы мы их увидели для каждого абонента. В дальнейшем данные адреса мы передаем вам для авторизации на биллинг (метод auth в api). Для установки прокси достаточно любого существующего сервера или виртуалки. Требованиями к ресурсам можно пренебречь, пока количество ТВ-абонентов не будет измеряться тысячами. Используется стандартный nginx, который вы должны установить со следующей конфигурацией:
server { listen XXXX; server_name 24h.providername.ru; access_log logs/proxy.access.log; error_log logs/proxy.error.log; location / { proxy_set_header Host api.24h.tv; proxy_pass https://api.24h.tv; proxy_set_header X-Forwarded-For $remote_addr; } }
Здесь он будет слушать на порту XXXX и переправлять запросы к нам, добавляя поле X-Forwarded-For. Имя сервера - подставьте вместо 24h.providername.ru (должно быть создано вами в DNS) - именно к нему будут обращаться абонентские устройства, вместо прямого обращения к api.24h.tv. После установки сообщите нам имя сервера и порт, мы для вас пропишем его и запросы пойдут через прокси.
К сожалению сервис 24h.tv обращается к API на стороне провайдера по трем точкам входа:
- provider.ru/billtv/auth
- provider.ru/billtv/cont
- provider.ru/billtv/check
Для сведения обращений в одну точку входа, используйте rewrite.
К примеру если скрипты API у вас располагаются так you_domen/24h.tv/index.php, то в случае nginx, в его конфиг добавляем следующее:
location /24h.tv/ { rewrite ^/24h.tv/(.*)$ /24h.tv/index.php?action=$1 last; }