У меня есть приложение Ruby-on-Rails, которое я размещаю на Apache и Phusion-Passenger (на сервере Ubuntu). В этом приложении у меня есть метод контроллера, который в основном защищает доступ к некоторым файлам на основе текущего пользователя, вошедшего в систему, а затем передает их с помощью X-sendfile. Метод выглядит примерно так:
def show
if File.exists @file_name
sendfile @file_name, :xsendfile => true
else
render_404
end
end
Он загадочным образом не работает на нашем промежуточном сервере, и я подозреваю, что это как-то связано с правами доступа к файлам, потому что каждый раз, когда я нажимаю на него, я получаю 404, но это не страница 404, которую я бы отобразил в результате моего render404
вызов; поэтому я подозреваю, что ошибка возникает после sendfile
линия выполнена.
Может ли кто-нибудь пояснить мне, какие должны быть разрешения для файлов, чтобы apache мог что-то серверить через x-sendfile.
PS Я также должен указать, что я совершенно уверен, что мой модуль X-sendfile правильно настроен и работает, поэтому он не имеет к этому никакого отношения.
Как всегда, он должен быть доступен для чтения пользователю, от имени которого работает веб-сервер.