Ruby on rails 薄的+;Nginx+;上传模块+;上载进度模块
我使用Nginx作为瘦实例的反向代理 我的目标是建立一个Rails(3)应用程序来上传大文件并处理它们 为此,我遇到了Nginx上传和上传进度模块 我大部分时间都在读一篇博文,但那是《乘客思考》中特别写的 如果可能,我正在寻找两个可能的答案: 1) 信息—实现此堆栈的示例(使用精简而不是乘客) 2) 关于如何重写此内容的具体信息:Ruby on rails 薄的+;Nginx+;上传模块+;上载进度模块,ruby-on-rails,nginx,thin,Ruby On Rails,Nginx,Thin,我使用Nginx作为瘦实例的反向代理 我的目标是建立一个Rails(3)应用程序来上传大文件并处理它们 为此,我遇到了Nginx上传和上传进度模块 我大部分时间都在读一篇博文,但那是《乘客思考》中特别写的 如果可能,我正在寻找两个可能的答案: 1) 信息—实现此堆栈的示例(使用精简而不是乘客) 2) 关于如何重写此内容的具体信息: location ^~ /progress { # report uploads tracked in the 'proxied' zone
location ^~ /progress {
# report uploads tracked in the 'proxied' zone
upload_progress_json_output;
report_uploads proxied;
}
location @fast_upload_endpoint {
passenger_enabled on;
rails_env development;
}
location / {
rails_env development;
passenger_enabled on;
}
我不知道什么是乘客专用,以及如何为典型的4个工人/3个瘦实例编写它
谢谢。首先,您应该安装带有上传模块的nginx。站点的nginx配置:
upstream uploader_cluster {
server unix:/tmp/thin.uploader.0.sock;
server unix:/tmp/thin.uploader.1.sock;
server unix:/tmp/thin.uploader.2.sock;
server unix:/tmp/thin.uploader.3.sock;
server unix:/tmp/thin.uploader.4.sock;
}
server {
listen 80;
server_name ***.com;
charset off;
client_max_body_size 1000m;
access_log /var/www/uploader/log/access.log;
error_log /var/www/uploader/log/error.log;
root /var/www/uploader/public;
index index.html;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
if (-f $request_filename/index.html) {
rewrite (.*) $1/index.html break;
}
if (-f $request_filename.html) {
rewrite (.*) $1.html break;
}
if (!-f $request_filename) {
proxy_pass http://uploader_cluster;
break;
}
}
location ~*uploads$ {
if ($request_method = GET) {
proxy_pass http://uploader_cluster;
break;
}
# pass request body to here
upload_pass @upload_photos;
# Store files to this directory
# The directory is hashed, subdirectories 0 1 2 3 4 5 6 7 8 9 should exist
# i.e. make sure to create /vol/uploads/0 /vol/uploads/1 etc.
upload_store /vol/uploads 1;
# set permissions on the uploaded files
upload_store_access user:rw group:rw all:r;
# Set specified fields in request body
# this puts the original filename, new path+filename and content type in the requests params
upload_set_form_field upload[file_name] "$upload_file_name";
upload_set_form_field upload[file_content_type] "$upload_content_type";
upload_set_form_field upload[file_path] "$upload_tmp_path";
upload_aggregate_form_field upload[file_size] "$upload_file_size";
upload_pass_form_field "^fb_sig_user$|^aid$|^batch_id$|^album_name$|^album_visible$|^caption$|^tags$|^complete$";
upload_cleanup 400 404 499 500-505;
}
location @upload_photos {
proxy_pass http://uploader_cluster;
}
}
谢谢,这对我帮助很大!