Nginx proxy pass: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
| Строка 100: | Строка 100: | ||
Однако все это хорошо но не работает с переменными, точнее работает не так как ожидалось (мной) |
Однако все это хорошо но не работает с переменными, точнее работает не так как ожидалось (мной) |
||
=Переменные= |
=Переменные= |
||
| + | |||
| + | Пример правильного конфига |
||
| + | <PRE> |
||
| + | location /test_links { |
||
| + | set $test_links_destination_location new_location; # без слеша вначале что бы удобнее было читать следующую переменную $test_link_proxy_pass |
||
| + | set $test_link_proxy_pass https://$app_backend_host/$test_links_destination_location$is_args$args; |
||
| + | |||
| + | proxy_pass $test_link_proxy_pass; |
||
| + | access_log /var/log/nginx/location-access.log-ssl; |
||
| + | error_log /var/log/nginx/location-error.log-ssl; |
||
| + | access_log /var/log/nginx/location-debug-access.log-ssl debug; |
||
| + | } |
||
| + | </PRE> |
||
| + | Ключевой момент тут <code>https://$app_backend_host/$test_links_destination_location$is_args$args;</code> |
||
| + | * Ожидаемо должно работать <code>https://$app_backend_host/$test_links_destination_location</code> но нет - теряются аргументы запроса |
||
| + | * <code>$is_args</code> содержит знак <code>?</code> или пустую строку если нет аргументов |
||
| + | * <code>$args</code> содержит аргументы запроса |
||
| + | |||
| + | |||
| + | =DNS= |
||
Версия 10:31, 9 июля 2024
Nginx proxy_pass
| location | proxy_pass | Пример конфигурации | Request | Received by upstream |
|---|---|---|---|---|
|
|
|
location /test_links {
proxy_pass https://noname.com.ua/new_location;
}
|
|
|
|
|
|
location /test_links/ {
proxy_pass https://noname.com.ua/new_location;
}
|
|
|
|
|
|
location /test_links {
proxy_pass https://noname.com.ua/new_location/;
}
|
|
|
|
|
|
location /test_links {
proxy_pass https://noname.com.ua/new_location/;
}
|
|
|
Однако все это хорошо но не работает с переменными, точнее работает не так как ожидалось (мной)
Переменные
Пример правильного конфига
location /test_links {
set $test_links_destination_location new_location; # без слеша вначале что бы удобнее было читать следующую переменную $test_link_proxy_pass
set $test_link_proxy_pass https://$app_backend_host/$test_links_destination_location$is_args$args;
proxy_pass $test_link_proxy_pass;
access_log /var/log/nginx/location-access.log-ssl;
error_log /var/log/nginx/location-error.log-ssl;
access_log /var/log/nginx/location-debug-access.log-ssl debug;
}
Ключевой момент тут https://$app_backend_host/$test_links_destination_location$is_args$args;
- Ожидаемо должно работать
https://$app_backend_host/$test_links_destination_locationно нет - теряются аргументы запроса $is_argsсодержит знак?или пустую строку если нет аргументов$argsсодержит аргументы запроса