Я хотел бы сделать следующее в своей конфигурации NGINX: я хочу, чтобы прокси-сервер передал параметры пути и запроса, но не включал первый параметр пути (path1).
URL-адрес запроса
https://my-domain.com/path1/path2?query1=some-query
Я хочу, чтобы это proxy_pass для
http://localhost:8000/path2?query1=some-query
Я пробовал со следующим блоком местоположения
location /path1/path2/ {
proxy_pass http://localhost:8000$request_uri;
proxy_http_version 1.1;
}
Однако это не приводит к правильной конечной точке, потому что я думаю, что он также включает параметр path1
. У меня есть несколько разных маршрутов path2
, и поэтому я хочу иметь возможность легко их перехватывать и перенаправлять — без необходимости вручную определять каждый из них следующим образом:
location /path1/path2a/ {
proxy_pass http://localhost:8000/path2a?query1=some-query;
proxy_http_version 1.1;
}
location /path1/path2b/ {
proxy_pass http://localhost:8000/path2b?query1=some-query;
proxy_http_version 1.1;
}
location /path1/path2c/ {
proxy_pass http://localhost:8000/path2c?query1=some-query;
proxy_http_version 1.1;
}
ДОПОЛНИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ:
Я также не могу просто сделать
location /path1/ {
proxy_pass http://localhost:8000/;
proxy_http_version 1.1;
}
потому что у меня уже есть блок location /path1/
, который обновляется до соединения WebSocket в другой конечной точке:
location /path1/ {
proxy_pass http://localhost:9000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
Я много искал в Интернете, но не смог найти конфигурацию, подходящую для моего конкретного сценария.