Browsersync за haproxy SSL терминация, не работает - PullRequest
0 голосов
/ 07 мая 2018

Я использую докер полностью на локальном. Скажем, haproxy-контейнер проксирует мой бэкэнд-контейнер веб-приложения с SSL-завершением (самоподписанный). Кроме того, я настроил dnsmasq для разрешения example.com в 127.0.0.1 и добавил 127.0.0.1 в начало списка DNS-серверов моего компьютера, чтобы я мог получить доступ к своему веб-приложению, запущенному на локальном хосте, с помощью example.com в моем браузере , Это сработало отлично.

Затем я подключаю haproxy к внутреннему контейнеру синхронизации браузера ( ustwo / browser-sync ) и синхронизирую браузер с моим веб-приложением. Кажется, что-то испорчено. Статическая часть веб-приложения показывает правильно, и API хорошо отвечает на запросы, но никакие функции синхронизации браузера не работают, выводя некоторый текст (см. Ниже) в консоль моего браузера. Возможно, я неправильно настроил синхронизацию браузера, но не смог найти какую-либо полезную информацию.

Это мой bs-config.js:

module.exports = {
  ui: {
    port: 8002
  },
  files: './dst/**/*',
  proxy: 'http://app:8000',
  port: 8001,
  logLevel: 'debug',
  logConnections: true,
  logFileChanges: true,
  logSnippet: true,
  open: false,
  cors: true,
  reloadOnRestart: true,
  reloadDebounce: 750,
  socket: {
    domain: 'localhost:8001'
  }
}

, где app - это ссылка на мое веб-приложение, а 8000 - порт прослушивания. Выводы на консоли разных браузеров следующие (последние версии браузеров).

  • Safari: [Error] Failed to load resource: An SSL error has occurred and a secure connection to the server cannot be made. https://localhost:8001/browser-sync/socket.io/?EIO=3&transport=polling&t=MCur2YU
  • Хром: GET https://localhost:8001/browser-sync/socket.io/?EIO=3&transport=polling&t=MCuuI9k 0 ()
  • Firefox: без логов

Кто-нибудь может помочь? Или, я имею в виду, это возможно?

1 Ответ

0 голосов
/ 08 мая 2018

Я решил проблему самостоятельно ?

  socket: {
    domain: 'example.com'
  }

Настройка, подобная этой, разрешает соединение с синхронизацией браузера в моем случае. Возможно, дело в том, чтобы заставить его проходить через haproxy, а не напрямую, чтобы правильно разрешать запросы SSL от браузеров.

Но потом я столкнулся с новыми проблемами; автоперезагрузка тайм-аутов с 504 и внедрение CSS не работает. После некоторой проверки я понял, что причина была в моем веб-приложении. Я неправильно настроил средство просмотра файлов для перезапуска веб-сервера при обновлении статических файлов (которое должно запускать только синхронизацию браузера для перезагрузки, а не веб-сервера).

Извините за шумиху ?

...