Краткое описание проблемы
При попытке доступа к загруженному изображению по URL на рабочей версии сайта Discourse (https://techenclave.com) возникает ошибка 404, хотя файл физически присутствует на диске и корректно отдается при внутреннем обращении. Я перезагрузил пост (rebake), перезапустил приложение и убедился, что внутренняя отдача работает, но внешняя по-прежнему возвращает 404.
Что работает
1. Загрузка присутствует в базе данных
Через консоль Rails я подтвердил, что запись о загрузке существует со всеми правильными метаданными:
Upload.find_by(sha1: 'a8fbe877e685e6a6994532c946c446b1279da7d2')
Вывод включает:
url: "/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg"- Имя файла:
IMG202506252257011.jpg - ID:
170265 - Используется в посте с ID:
3125774
2. Файл присутствует на диске
Проверено, что файл существует внутри контейнера:
ls -l /shared/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg
Файл существует с правильными правами доступа и владельцем:
discourse:www-data, -rw-r--r--.
3. Символическая ссылка из публичной папки работает
Символическая ссылка public/uploads целая:
ls -l /var/www/discourse/public/uploads
# => /shared/uploads
4. Discourse может отдавать файл внутренне
Проверено через:
curl -I http://localhost:3000/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg
Результат: HTTP/1.1 200 OK
5. Пост перезапечен (rebaked)
Выполнено:
Post.find(3125774).rebake!
6. Приложение перезапущено
Выполнено:
./launcher restart app
Также пробовал:
sudo ./launcher rebuild app
(Демон Docker временно был недоступен, но позже проблема была решена.)
Что не работает
Внешний доступ к изображению
При обращении по адресу:
https://techenclave.com/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg
Возвращается:
404 Not Found
Это происходит во всех браузерах и в режиме инкогнито.
В чем нужна помощь
Может ли кто-то помочь определить, что может вызывать:
- Рабочую загрузку, которая отдается через
localhost:3000, - но возвращает 404 при внешнем доступе по публичному домену?
Что еще стоит проверить? Есть ли связанные конфигурации или логи для анализа?
Заранее спасибо!

