鍍金池/ 問答/GO  Linux  網(wǎng)絡(luò)安全  HTML/ nginx 反代可以不輸出301,直出結(jié)果嗎

nginx 反代可以不輸出301,直出結(jié)果嗎

現(xiàn)在的問題是

用戶輸入的是一個(gè) id

需要用這個(gè) id 去請(qǐng)求一個(gè) api 才能得到 文件資源路徑 .

想到 兩個(gè)方法

  1. 這個(gè)請(qǐng)求由 go, php, node 等去處理
  2. nginx 代理一個(gè)動(dòng)態(tài)變化的 proxy_pass , 要先從 api 拿到, 或者 api地址可以返回 301 到真實(shí)地址

主要是為了美觀, 所以不想 301 到另一個(gè)地址


舉個(gè)例子就是

用戶訪問 http://a.com/60.jpg 的時(shí)候, 圖片資源的真實(shí)路徑其實(shí)是在 http://b.com/2018/02/11/54309...

回答
編輯回答
離殤

nginx 可以由一個(gè)特殊的 X-Accel-Redirect 頭部控制資源訪問。

所以可以直接 proxy_pass 到 upstream, upstream 根據(jù)請(qǐng)求動(dòng)態(tài)生成文件路徑,添加到X-Accel-Redirect: /path/to/file 頭部,nginx取回上游返回后,內(nèi)部跳轉(zhuǎn)/path/to/file, 這是一個(gè)內(nèi)部跳轉(zhuǎn),外部不可見的,你還可以添加 internal 指令控制該文件不可直接訪問。

2017年6月15日 13:30