Smoke

<<< Назад

Опять прокси WS! Теперь для KeenDNS+NGINX

Проксируем вебсокеты через KeenDNS

Что имеем:

  1. Keenetic 4G
  2. Модем YOTA
  3. Сервер KeenDNS через облако

Проблема

KeenDNS через облако имеет достаточно топорные возможности, например:

Важно! Облачная служба (режим работы "Через облако") поддерживает работу только по протоколам:
HTTP по портам: 80, 81, 280, 591, 777, 5080, 8080, 8090 и 65080
HTTPS по портам: 443, 5083, 5443, 8083, 8443 и 65083
к тому же, нельзя цепануть их сертификат себе на сервер и много других ограничений. Так же не проходит коннект через порты 8001 - те самые вебсокеты. Сейчас будем извращаться и придумывать!

Решение

  1. Настраиваем в KeenDNS поддомен 4 уровня вида: ws.domain.keenetic.pro и кидаем его на порт 80.
  2. Открываем NGINX конфиг сайта и в основной сервер, который слушает 80 порт кидаем вот это:

    location /majordomo {
        proxy_pass http://127.0.0.1:8001/majordomo;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_cache_bypass 1;
        proxy_no_cache 1;
        proxy_read_timeout 3600;
    
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
    }
  3. Сохраняем и ребутаем нджинкс
  4. Копируем из папки templates в папку templates_alt файл websockets.html
  5. Открываем файл и ищем там:
    addr = loc.hostname + ':8001/majordomo';

    Меняем на:
    addr = 'ws.domain.keenetic.pro/majordomo';
    Да, мы жестко прибиваем адрес, но мне этого достаточно.

  6. Чтобы локальный трафик WS не гнать через модем ставим прекрасный модуль Keenetic
  7. Открываем там Управление DNS
  8. Вписываем:
    ws.domain.keenetic.pro => 192.168.. (Замените на свое)

Готово!

Обсуждение (0) (4)

Смотрите так же:
24.10.2021 Определяем выключен ли свет по камере о_О
19.09.2021 Хитрый MJPEG или укрощение строптивого
08.06.2021 Парсим информер с Яндекс.Погоды
13.01.2021 Не разговаривает Алиса через облако?
15.12.2020 Разгоняем Xiaomi Home
04.11.2020 Проксирование WebSocket с wss:// -> ws://
02.11.2020 Как получить время езды до работы?
02.06.2020 Стилизация штатного редактора кода, часть 2
01.06.2020 Распознавание речи - бесплатно, просто, быстро.
01.06.2020 Стилизация штатного редактора кода
29.01.2020 Парсим данные баланса из ЛК Билайн (Update)
28.01.2020 Camshoter на свой лад
21.01.2020 Google Location + Yandex Maps, на свой лад
19.01.2020 Получение Я.Погоды из сценария
17.01.2020 Рассказ хейтера сцен в MJDM. Часть 2
17.01.2020 Как можно НЕ использовать сцены в MJDM. Часть 2
16.01.2020 Перезагружаем роутер Zyxel из MJDM
12.12.2019 Как подружить Camshoter и обычную вебку
07.10.2019 Управление планшетом из сцен/WEB
07.10.2019 Использование злосчастных WebSoccet
17.01.2020 ~DELETED~
23.07.2019 Как можно НЕ использовать сцены в MJDM. Часть 1.

Нижний Новгород, Россия

На форуме: SmoKE_xDDD