nginx 反代可以不输出301,直出结果吗

gclove
  • 1.4k

现在的问题是

用户输入的是一个 id

需要用这个 id 去请求一个 api 才能得到 文件资源路径 .

想到 两个方法

  1. 这个请求由 go, php, node 等去处理
  2. nginx 代理一个动态变化的 proxy_pass , 要先从 api 拿到, 或者 api地址可以返回 301 到真实地址

主要是为了美观, 所以不想 301 到另一个地址


举个例子就是

用户访问 http://a.com/60.jpg 的时候, 图片资源的真实路径其实是在 http://b.com/2018/02/11/54309...

回复
阅读 1.9k
1 个回答
ciqulover
  • 1.4k

nginx 可以由一个特殊的 X-Accel-Redirect 头部控制资源访问。

所以可以直接 proxy_pass 到 upstream, upstream 根据请求动态生成文件路径,添加到X-Accel-Redirect: /path/to/file 头部,nginx取回上游返回后,内部跳转/path/to/file, 这是一个内部跳转,外部不可见的,你还可以添加 internal 指令控制该文件不可直接访问。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏