Обратный прокси-сервер Nginx и перезапись URL-адреса

Я хотел бы переписать URL-адрес в обратном прокси-сервере, чтобы он удалял первый сегмент, но оставляет без изменений следующие сегменты. Мне нужно, чтобы это произошло до того, как он попадет в прокси-сервер.

Пример:

/admin/auth/local ----> (REWRITES TO) /auth/local
/admin/auth/register -------> (REWRITES TO) /auth/register

Блок «Мое местоположение»:

  location /admin {
        #add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
        add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
        proxy_set_header Host $host;
        proxy_set_header X-Real-Ip $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_pass_header Set-Cookie;
        proxy_read_timeout                 30;
        proxy_buffers 64 8k;
        rewrite /admin / break;
        proxy_pass http://127.0.0.1:9000;

Я безуспешно пробовал следующее:

rewrite /admin / break;
1
задан 7 December 2020 в 16:26
2 ответа

Здесь есть две части. Во-первых, как nginx направляет входящие запросы через proxy_pass .

Там можно сопоставить входящие запросы для / бэкэнду с префиксом / admin / со следующим конфигурация:

location / {
    proxy_pass http://127.0.0.1:9000/admin/;
}

Оператор rewrite не требуется.

Вторая часть - это URL-адреса, которые генерируются приложением, работающим по адресу 127.0.0.1:9000 . Вам необходимо настроить это приложение на создание URL-адресов без префикса / admin , чтобы иметь URL-адреса, соответствующие настройке маршрутизации nginx.

Nginx не может надежно внести это изменение в контент, созданный серверной частью.

0
ответ дан 4 January 2021 в 08:59

Я считаю, что вам просто нужно добавить свой первый сегмент (admin) в проход прокси.

proxy_pass http://www.example.com/admin/;
0
ответ дан 4 January 2021 в 08:59

Теги

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