Я пытаюсь настроить Discourse в Docker на своём существующем сервере. Другие контейнеры Docker у меня не запущены.
На моём сервере работают Apache (сайты на WordPress) и некоторые другие веб-сервисы.
Не могу понять, как настроить маршрутизацию моего поддомена ‘forum.rebelscience.club’ к моему контейнеру Docker.
Когда меня спрашивают:
Hostname for your Discourse? [discourse.example.com]: forum.rebelscience.club
Я вижу следующее:
Checking your domain name . . .
WARNING: Port 443 of computer does not appear to be accessible using hostname: forum.rebelscience.club.
WARNING: Connection to http://forum.rebelscience.club (port 80) also fails.
This suggests that forum.rebelscience.club resolves to some IP address that does not reach this
machine where you are installing discourse.
The first thing to do is confirm that forum.rebelscience.club resolves to the IP address of this server.
You usually do this at the same place you purchased the domain.
If you are sure that the IP address resolves correctly, it could be a firewall issue.
A web search for "open ports YOUR CLOUD SERVICE" might help.
This tool is designed only for the most standard installations. If you cannot resolve
the issue above, you will need to edit containers/app.yml yourself and then type
./launcher rebuild app
Не уверен, как это настроить. Порты 80/443 доступны, но они направлены на мой основной домен, а не на поддомен.
Эта тема уже подробно обсуждалась здесь, на meta; вы можете поискать на meta по запросу «apache reverse proxy» и найти множество исчерпывающих и очень подробных тем.
Если кратко, вам нужно настроить виртуальный хост вашего сервера Apache так, чтобы он работал как обратный прокси для Discourse.
Точные конфигурации apache2 для такой настройки неоднократно публиковались на meta.
Извините, я должен был упомянуть, что я уже изучил/попробовал несколько решений с этого форума и от Digital Ocean. Но всё ещё не могу заставить это работать. Я никогда раньше не настраивал Docker.
Давайте я поделюсь своими текущими настройками:
/etc/hosts:
127.0.0.1 forum.rebelscience.club
Файл hosts и DNS-запись работают, так как сегодня там был запущен phpBB. Теперь я пытаюсь перенаправить его на Docker с Discourse.
Я считаю, что у вас должен быть виртуальный хост для порта 443. При этом ошибка порта 80 выглядит странно — возможно, в вашей DNS не хватает чего-то (например, CNAME-записи)?
В приведённом выше примере конфигурации следует открывать только порт 8081 в Docker (а не порты 80 или 443).
Порты 80 и 443 открывает обратный прокси-сервер за пределами контейнера, и этот трафик перенаправляется на порт 8081 (в вашем примере выше) — тот порт, который вы открыли внутри контейнера (сопоставив его с портом 80 внутри).
Это будет работать только в том случае, если порт 80 внутри контейнера сопоставлен с портом 8081 (открытым для хоста).
expose:
- "8081:80" # http
Надеемся, это поможет.
PS: @rebelCoder, в вашей конфигурации apache2 для SSL не хватает многих необходимых настроек.