Назад | Перейти на главную страницу

Как удалить подпуть из URL-адреса в nginx proxy_pass?

Вот конфигурация моего обратного прокси-сервера:

server {
  listen 8085 ssl;
  server_name  localhost;
  location / {
    proxy_pass http://192.168.85.56:8080;
  }
}

Для входящего пути, например: https://localhost:8085/path1/1/path2/, Я хочу удалить /1/, поэтому результирующий путь будет https://localhost:8085/path1/path2/.

Одно ограничение заключается в том, что path1 может измениться на любую строку.

Кроме того, сопоставление по любому номеру вместо простого 1 также допустимое решение.

Как это может быть сделано?

Изменить: моя проблема очень похожа на вот этот, за исключением того, что у меня есть строка, path1, это может быть разным.

Использовать rewrite...break внутри location блок.

Например:

location / {
    rewrite ^(.*)/[0-9]+/(.*)$ $1/$2 break;
    proxy_pass http://192.168.85.56:8080;
}

Видеть этот документ для подробностей.