這是我的 Nginx 配置:
upstream backend {
server backend.local:10000;
}
upstream test_backend {
server test.local:20000;
}
server {
server_name proxy.local;
listen 8000;
location / {
if ($http_authorization != "") {
mirror /mirror;
}
proxy_pass http://backend;
}
location = /mirror {
internal;
proxy_pass http://test_backend$request_uri;
}
}
如您所見,我嘗試mirror用條件包裝塊。基本上我需要在Authorization設定標頭時鏡像請求。當我嘗試使用此配置時,Nginx 顯示并出錯,這告訴我我不能mirror在if陳述句中使用。如何有條件地反映請求?
uj5u.com熱心網友回復:
您可以創建合成 ^/http_auth 位置并使用 http 授權重寫這些位置的請求。例如:
...
if ($http_authorization) {
rewrite ^/(.*)$ /http_auth/$1 last;
}
location ~ ^/http_auth/(.*)$ {
proxy_pass http://backend;
}
location / {
mirror /mirror;
proxy_pass http://backend;
}
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/376074.html
