Enable X-Sendfile support under Passenger

Passenger doesn't behave like a proxy server.
But it does support X-Sendfile. So let's make
use of that.
This commit is contained in:
Jacques Distler 2009-10-11 14:00:16 -05:00
parent 2240206554
commit cae4b5c539
2 changed files with 4 additions and 3 deletions

View file

@ -87,7 +87,8 @@ class ApplicationController < ActionController::Base
original_options[:type] ||= (FILE_TYPES[File.extname(file_name)] or 'application/octet-stream')
original_options[:disposition] ||= (DISPOSITION[original_options[:type]] or 'attachment')
original_options[:stream] ||= false
original_options[:x_sendfile] = true if request.env.include?('HTTP_X_SENDFILE_TYPE') && request.remote_addr == LOCALHOST
original_options[:x_sendfile] = true if request.env.include?('HTTP_X_SENDFILE_TYPE') &&
( request.remote_addr == LOCALHOST || defined?(PhusionPassenger) )
original_options
end

View file

@ -7,8 +7,8 @@ class FileController < ApplicationController
layout 'default'
before_filter :dnsbl_check, :check_authorized
before_filter :check_allow_uploads, :except => [:file, :blahtex_png]
before_filter :check_authorized
before_filter :check_allow_uploads, :dnsbl_check, :except => [:file, :blahtex_png]
def file
@file_name = params['id']