2017-10-05 90 views
0

時不允許我需要重定向所有文件上傳請求https://example.com/year2017/monthsept/upload/https://example.com/upload/NGINX 405上傳文件

在nginx的配置我有以下的位置/服務器塊內重寫規則。但是,我收到405錯誤。

location ~ ^/year2017/monthsept/upload/(.*) { 
rewrite ^year2017/monthsept/upload/$1 /upload/$1 permanent; 
} 

$ curl --verbose --upload-file test.txt https://example.com/year2017/monthsept/upload/ 

PUT /year2017/monthsept/upload/test.txt HTTP/1.1 < HTTP/1.1 405不允許 * HTTP錯誤發送的結束之前,停止發送 *關閉連接0

我已經更新了重寫規則,所以經常但沒有喜悅。

正確的nginx規則是什麼?

回答

0

您永遠不會重寫POST或PUT請求。因爲這會將請求更改爲GET請求。一個POST/PUT請求應該總是作爲它處理。所以,你只是代理回用正確的路徑

location ~ ^/year2017/monthsept/upload/(.*) { 
    proxy_pass http://127.0.0.1/upload/$1; 
} 
+0

嗨塔倫, 此時nginx的,我要補充的nginx的是2個上游服務器負載平衡器。額外的proxy_pass如何處理負載均衡?刪除這樣的IP地址? location〜^/year2017/monthsept/upload /(.*){ proxy_pass/upload/$ 1; } – Mark

+0

是的,這應該工作太 –

+0

這有助於我現在有工作作爲使用 '位置〜^/year2017/monthsept /上傳/(.*){ proxy_pass example.com/upload/$1預期; }' – Mark