Как составит location для proxy_pass с регуляркой?

Мне надо проксировать все запросы вида host/some/server/ на другой ip.
some может быть какой угодно.
Могут быть и get с аргументами и POST с телом.
Проблема в том, что когда я делаю так
location ^~/some/server/ {
	proxy_pass http://192.168.81.71;
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
}

всё ходит нормально. Но some прописано явно, что меня не устраивает.
При
location ~^/(some1|some2)/server/(.*) {
	proxy_pass http://000.000.000.000/$1/server/$2?$args;

Ходит только GET с агргументами. И даже GET к php не ходит.
По сути, мне нужно что бы проксировалось всё, что во втором сегменте uri имеет server, на другой хост.
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
SergeGoryachev
@SergeGoryachev Автор вопроса
Собственно, проблема разрешилась банальным образом.
location ~^/(.*)/server/ {
proxy_pass http://host;

Прекрасно заработало.
Проблема была в порядке location.
Переместил его в начало конфига и всё заработало.

Спасибо
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Oxyd
@Oxyd
Linux enthusiast
У вас очепятка?
location ^~/some/
В рабочем конфиге
Versus
location ~^/(some1|
В том где не работает.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы