来自DB的路由用于nginx反向代理

时间:2015-06-26 14:29:16

标签: postgresql nginx scripting proxy

如何从外部源获取Nginx反向代理的路由数据?

Project有多个外部文件存储空间。旧版代码具有以下工作流程:

  1. 文件请求来到RoR控制器
  2. RoR从模型中获取外部文件名(Postgres)
  3. RoR从外部源获取文件内容并将其返回
  4. 这是非常糟糕的概念,所以我想把这个逻辑改为:

    1. 文件请求来自nginx
    2. Nginx从某个具有DB访问权限的服务/脚本获取外部文件名
    3. Nginx代理来自外部源的文件来自(2)
    4. 的文件名

      那么,问题是如何从nginx中获取存储在postgres中的文件名?我想,将http-request发送到localhost是可以的,但是如何在nginx配置中执行此操作?

1 个答案:

答案 0 :(得分:1)

这是一个糟糕的概念。好的概念是

  1. 文件请求来自nginx
  2. nginx将其传递给RoR
  3. RoR从模型中获取外部文件名(Postgres)
  4. RoR通过X-Accel-Redirect
  5. 传递nginx新URI
  6. nginx提供文件。
  7. 请参阅http://wiki.nginx.org/XSendfile