Я бегаю Gitlab обратное проксирование через сервер Apache 2.2 для моей рабочей группы. Недавно мы хотели загрузить несколько логотипов групп, чтобы использовать их в качестве аватаров проекта. Все загрузки завершились успешно (подтверждено в списке каталогов через SSH), но изображения так и не появились - вместо этого мы получили только 404.
Мы используем Apache mod_proxy для подключения к бэкэнду Unicorn.
На самом деле у меня тоже была эта проблема. Вам необходимо включить статические активы в вашем config. Поскольку Gitlab был разработан для работы с Apache, они отключили совместное использование статических ресурсов Unicorn. Чтобы включить его, просто запустите sudo -u git vim /home/git/gitlab/config/environments/production.rb
и примерно в строке 12 измените config.serve_static_assets
к истине.
Оказывается, пример конфигурации Apache Gitlab что мы изначально использовали (более года назад) отсутствовала проверка наличия файлов, прежде чем он вернется на сервер Unicorn, а также отсутствовали директивы, запрещающие проксировать определенные каталоги (например, /uploads
), но сервер Unicorn не был настроен для обслуживания этих файлов.
Обновление конфигурации Apache для соответствия новейшая версия образца исправил проблему.