Zmienić proxy_pass, jeśli warunek jest spełniony?
Przez większość czasu chcę używać upstream, ale inne chcę zezwolić na określenie serwera docelowego na podstawie nagłówka żądania X-Target-Server.
Mam serwer, który szuka zmiennej żądania i wyświetla ją jako część mojego nginx.conf. Następnie mam konfigurację serwera wirtualnego, która wykonuje następujące czynności:
proxy_pass [url=https://backend_dev_test;]https://backend_dev_test;[/url]
if ($is_target_specified) {
proxy_pass https://$http_x_target_server;
}
Co się dzieje, gdy określono dyrektywę proxy_pass? Czy zaczyna się od razu? Czy to sprawi, że zadziała dwukrotnie? A może będzie celować tylko w drugą, jeśli warunek zostanie spełniony?
Wydaje się, że działa to w niektórych blokach lokalizacji, ale nie w innych i nie rozumiem dlaczego. Czy jest lepszy sposób na rozwiązanie tego problemu? Pełne lokalizacje poniżej
Wydaje się działać
location ~*/v3/(test|other)/ {
proxy_cache_bypass "1";
proxy_no_cache "1";
resolver 8.8.8.8;
proxy_ignore_client_abort on;
rewrite ^/v3/(.*)$/$1 break;
proxy_pass [url=https://backend_dev_test;]https://backend_dev_test;[/url]
if ($is_target_specified) {
proxy_pass https://$http_x_target_server;
}
}
Nie wydaje się działać
location ~*/v3 {
proxy_cache_bypass "1";
proxy_no_cache "1";
resolver 8.8.8.8;
proxy_ignore_client_abort on;
proxy_pass [url=https://backend_dev;]https://backend_dev;[/url]
if ($is_target_specified) {
proxy_pass https://$http_x_target_server;
}
}
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
0 odpowiedzi