Skip to content

A project to provide a more efficient send_file method for Ruby on Rails’ ActionController by sending files directly via reverse proxy servers. Currently only supports Nginx.

License

Notifications You must be signed in to change notification settings

kete/better_send_file

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

better-send-file
================

Deprecation Notice
==================

This plugin is no longer in use in Kete (https://github.com/kete/kete) and therefore will no longer be maintained by Katipo Communications LTD.

Summary
=======

better_send_file is a plugin by James Stradling <http://www.katipo.co.nz> which overrides Rail's ActionController::Streaming#send_file method to use a reverse proxy to send files.

This is especially useful when running Mongrels as web-servers as send_file can tie up a mongrel instance for a long period of time in some circumstances.

better-send-file functionality
==============================

better_send_file currently supports the following reverse proxies:
	Nginx (X-Accel-Redirect)
	
usage
=====

1.	Configure Nginx to handle the X-Accel-Redirect header, then restart your Nginx server.

	a) Add the following declaration in the server block on the nginx.conf file
	
	location /private/ {
		root /home/user/apps/my_app/;
		internal;
	}
	
	b) Substitute /private for the path inside your application to the files to be served. This is file system relative, not URL relative. For instance, in the example above, /private references the folder at /home/user/apps/my_app/private.
	c) Substitute /home/user/apps/my_app/ for the full path to your applications's root directory.

	NB: The internal declaration is mandatory, but has the side effect that files inside this folder cannot be fetched from outside of your application directly (i.e. through a GET request to the appropriate URL). The file must be actively served from inside the application by sending the X-Accel-Redirect header to the Nginx server.
	
	
2.	Add the better_send_file plugin to your application's vendor/plugins/ directory.
3.	Restart your web-server (e.g. mongrel) instances, and you're good to go. better_send_file override's rails' send_file method so you can keep using this as normal.

See the Rails docs at http://api.rubyonrails.org for more info.

About

A project to provide a more efficient send_file method for Ruby on Rails’ ActionController by sending files directly via reverse proxy servers. Currently only supports Nginx.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages