告诉ngix使用反向代理从节点应用内发送文件

时间:2019-03-13 18:58:09

标签: node.js nginx reverse-proxy

我有一个由nginx代理的节点快速应用程序。 Nginx已经处理了大多数公共静态文件,位于 / static

但是,我有一些文件需要限制访问。在 / restricted 上,nginx将HTTP请求代理到我的节点应用程序之后,我需要运行授权逻辑,然后以某种方式让nginx知道它应从目录中提供特定文件不公开。

我不想直接从节点发送文件,因为它们很大,会阻塞主线程。

1 个答案:

答案 0 :(得分:1)

  • 从您的应用程序生成一个响应,该响应包含一个X-Accel-Redirect HTTP响应标头,该标头指定一个以/restricted/开头的URI
  • Nginx将拦截响应并在内部重写URI
  • 配置包含location指令的internal

例如:

location /restricted {
    internal;
    alias /path/to/files;
}

有关更多信息,请参见this document