У меня есть сайт, созданный с помощью фреймворка Elixir Phoenix. Веб-сайт отлично работает как в режиме разработки, так и в режиме производства.
Когда сервер phoenix работает в режиме разработки, у меня нет проблем с обновлением сертификата Let's Encrypt, но когда точно такое же приложение работает в режиме prod, я продолжаю получать ошибку разрешения при попытке обновления. Обратите внимание, что я говорю об точно таком же приложении на том же сервере FreeBSD, выполняемом одним и тем же пользователем — обе команды без sudo
. Единственная разница MIX_ENV=prod
Я также заметил, что в режиме prod сервер phoenix регистрирует ошибку 404, когда Letsencrypt пытается получить доступ к моему priv/static/.well-known/acme-challenge/(some-unique-string)
Моя базовая настройка для phoenix + letsencrypt подробно описана в этот пост в блоге
Вопрос: как сервер phoenix по-разному обрабатывает права доступа к каталогам/файлам в режимах `prod' и 'dev'?
- Использование Эликсира 1.2.4 и Феникса 1.1.4
ОБНОВЛЕНИЕ:
Ребята, поскольку платформа LetsEncrypt и Phoenix быстро развиваются, проблема, которую я перечислил выше, больше не является проблемой, если вы используете последнюю версию cerbot от LetsEncrypt и Phoenix 1.2.0.
Однако это не обязательно ответ на исходные вопросы.
ls -al
вывод в этом файле? - person tkowal   schedule 16.05.2016drwxr-xr-x 3 freebsd freebsd 512 Feb 28 20:05 .well-known
, а для папки acme-challenge, к которой, как я полагаю, требуется доступ для шифрования, используетсяdrwxr-xr-x 2 freebsd freebsd 512 May 12 17:16 .acme-challenge
. freebsd — это пользователь, который запускаетmix phoenix.server
как в режиме dev, так и в режиме prod — оба без sudo - person yial2   schedule 16.05.2016dev.exs
и prod.exs заключается в том, что у dev.exs есть некоторые настройки перезагрузки в реальном времени. - person yial2   schedule 21.05.2016dev
с моимprod.exs
, переименованным вdev.exs
, certbot работает успешно, а регистратор молчит. Когда я запускаю его вprod
с правильным именемprod.exs
, маршрутизатор регистрирует запросGET
для/.well-known/acme-challenge/random_file_name
. Кто-нибудь знает об опции конфигурации по умолчанию на маршрутизаторе, когда для env установлено значениеprod
, или это не проблема? - person brittonjb   schedule 08.06.2016prod
, когда certbot пытается получить доступ к/.well-known/acme-challenge/random_file_name
? Возможно, мне придется повторить эту проблему на IRC-канале elixir-lang и посмотреть, сможет ли какая-нибудь мощная пушка пролить свет на наши проблемы. - person yial2   schedule 08.06.2016prod
он регистрировал ошибку 404, когда certbot пытался получить доступ к этому файлу. При запуске вdev
со всеми скопированными производственными настройками он не 404, он успешно завершен. - person brittonjb   schedule 08.06.2016MIX_ENV=prod mix compile
перед запуском сервера в продакшене (я знаю, что в какой-то момент вы запускали эту команду, но после добавления файла?). Файлы, используемые в производстве, находятся в_build/prod/lib/{yourApp}/priv/static
и копируются в эту папку при компиляции проекта. Можете ли вы проверить эту папку, чтобы увидеть, есть ли там файлы и правильные ли разрешения? - person Tiago Engel   schedule 23.08.2016MIX_ENV=prod mix compile
после получения всех сертификатов/файлов Letsencrypt на сервере dev. Я запустил его перед запуском сервера prod. Что касается файлов в разделе _build/prod/lib/{yourApp}/priv/static/.well-known/acme-challenge и _build/dev/lib/{yourApp}/priv/ static//.well-known/acme-challenge Разрешения одинаковые для всех файлов между dev и prod - person yial2   schedule 24.08.2016