問題很簡單,假設我在 nginx 中有一個變數:
set $test $upstream_status;
現在變數中的狀態將是例如“200”。我如何將此變數轉換為數字以便像這樣使用它:
return $test "test";
uj5u.com熱心網友回復:
每個 nginx 變數都是一個字串,唯一的例外是$remote_binary_addr
一個(畢竟它仍然是一個 4 或 16 位元組長度的二進制打包字串)和其他幾個。然而,并非每個 nginx 指令都允許您使用變數來指定其引數,并且該return
指令的 HTTP 回傳碼正是其中一種情況。
此外,無論你想做什么,你肯定會以錯誤的方式去做。來自ngx_http_rewrite_module模塊的所有指令(包括那個return
)都在請求處理的早期階段執行,在任何東西被發送到上游之前,甚至沒有談論應該接收的東西。通常可以使用設定并為特定的上游回傳代碼proxy_intercept_errors on;
指定處理程式來實作這樣的事情,例如error_page
location / {
proxy_pass ...
proxy_intercept_errors on;
error_page 301 @handler_301;
error_page 302 @handler_302;
...
}
location @handler301 {
# you are free to use 'return 301 "anything"' here
...
}
location @handler302 {
...
}
...
但是,您可以攔截的唯一回傳代碼是 300 及以上。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/477774.html
標籤:nginx nginx-反向代理 nginx 配置
上一篇:getText和setText函式在androidstudio中不起作用
下一篇:標志板,如通過css設計的按鈕