Smoke

<<< Back

Опять прокси 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.. (Замените на свое)

Готово!

Discuss (0) (4)

See also:
2021-10-24 Определяем выключен ли свет по камере о_О
2021-09-19 Хитрый MJPEG или укрощение строптивого
2021-06-08 Парсим информер с Яндекс.Погоды
2021-01-13 Не разговаривает Алиса через облако?
2020-12-15 Разгоняем Xiaomi Home
2020-11-04 Проксирование WebSocket с wss:// -> ws://
2020-11-02 Как получить время езды до работы?
2020-06-02 Стилизация штатного редактора кода, часть 2
2020-06-01 Распознавание речи - бесплатно, просто, быстро.
2020-06-01 Стилизация штатного редактора кода
2020-01-29 Парсим данные баланса из ЛК Билайн (Update)
2020-01-28 Camshoter на свой лад
2020-01-21 Google Location + Yandex Maps, на свой лад
2020-01-19 Получение Я.Погоды из сценария
2020-01-17 Рассказ хейтера сцен в MJDM. Часть 2
2020-01-17 Как можно НЕ использовать сцены в MJDM. Часть 2
2020-01-16 Перезагружаем роутер Zyxel из MJDM
2019-12-12 Как подружить Camshoter и обычную вебку
2019-10-07 Управление планшетом из сцен/WEB
2019-10-07 Использование злосчастных WebSoccet
2020-01-17 ~DELETED~
2019-07-23 Как можно НЕ использовать сцены в MJDM. Часть 1.

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

На форуме: SmoKE_xDDD