Привет,
Может кто-нибудь подсказать или привести примеры, как настроить WebSocket с HTTPS для Discourse?
Простой HTTP работает, но мне нужен вариант через HTTPS.
Привет,
Может кто-нибудь подсказать или привести примеры, как настроить WebSocket с HTTPS для Discourse?
Простой HTTP работает, но мне нужен вариант через HTTPS.
Кстати, судя по вашему другому посту, это может стоить попробовать
Не совсем, я уже успешно запускаю другие веб-сайты через порты 80/443, как и говорил. У меня уже работают сайты на LiteSpeed, даже почтовый сервер не заблокирован. Я даже пробовал порт 8443, но ничего не заработало. Через Websocket мне хотя бы удалось запустить его по HTTP, но из-за смешанного контента в HTTPS он не работал корректно.
Discourse не поддерживает никакие комбинации портов, кроме 80/443
Вот почему я сказал, что Discourse не поддерживает порты, кроме 80/443.
Если вы действительно хотите попробовать какую-либо другую комбинацию, вы действуете на свой страх и риск.
Если вы спросите меня, это очень глупое решение. Обычно люди запускают несколько сервисов на одном сервере, а вы буквально запрещаете им это делать. Кроме того, контейнеры Docker редко работают в одиночку на одном сервере. Похоже, вы подталкиваете других людей к покупке отдельных серверов только потому, что не хотите поддерживать порты, отличные от стандартного.
Буквально тысячи людей размещают другие сервисы на том же сервере, что и Discourse. Существуют способы сделать это. Если вы проведёте исследование, то увидите, что это очень хорошо поддерживаемый сценарий использования. Для его реализации вам потребуется разместить сервисы за обратным прокси-сервером.
Вот один из способов: Run other websites on the same machine as Discourse
Я размещаю свой публичный песочный экземпляр Discourse на устройстве NUC, которое также hostит множество других сервисов за Nginx Proxy Manager, но это мой собственный способ. Это не поддерживается официально, но я хорошо разбираюсь в этой теме.
Я уже пробовал это раньше, но это не работает должным образом. В любом случае, в таком случае я вообще не вижу смысла в поддержке, потому что, как вы сказали, тысячи людей делают это. Однако нигде на GitHub или в Wiki нет четких инструкций, как заставить это работать. Только вариант 80/443, который ведет себя как единый сервис.
Вам потребуется обратный прокси-сервер, например, как настроить Discourse на сервере с существующими сайтами Apache.
Хотя я всё равно не использую Apache, мне скорее нужны nginx и LiteSpeed, но, тем не менее, проще было бы просто разрешить использовать любые другие порты — тогда мы сможем легко передать их другим веб-серверам.
Нет, я вообще ничего не понимаю в Docker. Но когда я устанавливал Discourse на тот же VPS, где до этого были Nginx и Varnish, я использовал сокет без проблем. Но это же другое дело?
Сейчас у меня Discourse находится на другом VPS, чем Nginx/Varnish, поэтому я не могу использовать сокет. Вот почему Varnish перенаправляет всех на порт 82, а оттуда — на VPS с Discourse. Поэтому у меня есть:
expose:
- "82:80"
Но разве это совсем другое дело, учитывая, что Discourse может использовать только порты 80/443?
Тогда вы можете найти руководство по nginx или использовать это в качестве примера.
Это не произойдет. Вам понадобится обратный прокси-сервер, который обрабатывает HTTPS.
Я нашёл способ заставить это работать, в конце концов, это было не так уж и сложно, и вы можете запускать Discourse на любом порту, который пожелаете.
Верно. Вы можете открыть порт 82 (или любой другой) для контейнера Docker с Discourse, если перед ним стоит Varnish, чтобы URL оставался обычным https-адресом. Пока Varnish управляет https-сертификатами, вы сможете продолжить работу так, как планировали.