1

在rails中,我使用回形针+ resque上传和处理图像,它消耗太多内存并且非常慢。我想尝试 node.js 在后台处理这些东西。

可能的 route rails 和 node.js 都具有相同的端口吗?

一些路由处理 rails,一些路由到 node.js。例如,

导轨

/users/:user_id/albums(.:format)          
/users/:user_id/albums/new(.:format)      
/users/:user_id/albums/:id/edit(.:format)

节点.js

/uploads

谢谢。

解决方案

POST /uploads 到 node.js(port 8080) 来处理,其他的rails。下面是我的 nginx 配置文件

  location = /uploads {
    proxy_pass http://127.0.0.1:8080/uploads;
  }

  location ^~ /assets/ {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }

  try_files $uri/index.html $uri @unicorn;
  location @unicorn {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://unicorn;
  }

谢谢@Matthew Ratzloff

4

2 回答 2

2

是的。您可以使用反向代理并将选择路径转发到您的 Node.js 服务器,并将其他路径转发到您的 Rails 应用程序。

现在,这是个好主意吗?好...

更好的解决方案是继续在 Rails 中的 Resque 中创建作业,但使用Coffee-Resque之类的东西来实际处理作业。这就是我要走的路线。

希望有帮助!

于 2012-06-20T20:43:50.293 回答
1
No; 10.times { No }

但。假设你想这样做。你会:

  1. 将文件直接上传到 S3
  2. 向 Node 发出请求以下载和处理文件
  3. 完成后,向 Rails 发送 HTTP 请求以使用文件属性更新其数据库。
于 2012-06-20T13:22:32.453 回答