Я устанавливаю новый экземпляр Discourse и пытаюсь развернуть его в корне домена (я прочитал Configure your hosted Discourse site to run at the root or apex domain (e.g. example.com) и могу выполнить все требования). В первый раз я совершил ошибку и заметил, что если указать корневой домен (apex domain) в скрипте discourse-setup, то Nginx запускается вне Docker. Это легко проверить и воспроизвести:
Я создал новый экземпляр виртуальной машины и убедился, что Nginx не установлен, а порт 80 закрыт.
Запустил скрипт discourse-setup и указал в нём корневой домен.
Скрипт завершил работу.
Nginx запущен вне Docker (что подтверждается командой ps -ax) и захватил порт 80; при переходе по адресу домена отображается приветственный экран Nginx.
Я поискал эту проблему, но не нашёл других подобных сообщений, хотя видел, что несколько человек сталкивались с запуском Nginx вне Docker, и это может быть причиной.
Понимаю, что это моя ошибка — однако, возможно, скрипт не должен позволять указывать корневой домен?
Технически это невозможно. Я почти уверен, что на вашей виртуальной машине nginx уже был предустановлен. Некоторые облачные провайдеры включают веб-сервер (Apache2 или nginx) в свои стандартные образы.
Привет! Да, я тоже так предполагал, поэтому создал новую виртуальную машину, проверил, что Nginx не установлен, и только после этого запустил скрипт discourse-setup. Сразу после этого Nginx заработал, как и описано.
У меня уже есть несколько установок, и каждый раз я следовал той же процедуре — всё работало как ожидалось. В этот раз я впервые пытался установить в корень домена (то есть указывал example.com в скрипте настройки), и возникла эта проблема. Та же виртуальная машина, та же ОС и т. д.
Команда ps -ax показывает процессы, работающие и внутри Docker.
Это контейнеризация, а не виртуализация.
Попробуйте выполнить service nginx status внутри и вне контейнера.
root@ip:~# service nginx status
Unit nginx.service could not be found.
root@ip:~# cd /var/discourse/
root@ip:/var/discourse# ./launcher enter app
x86_64 arch detected.
service service root@ip-app:/var/www/discourse# service nginx status
[ ok ] nginx is running.