Рейтинг:0

Как изменить имена расширений, специфичных для прокси, с помощью Nginx

флаг cn

Скажем, я пытаюсь проксировать все запросы, поступающие для файлов jpg, png и mp3, например так:

http://example.com/some/url/file.png

к

http://example.net/data/some/url/file.png

Обратите внимание, что это точно такой же путь к другому серверу, но с данные добавлен.

Ее то, что у меня есть до сих пор:

расположение ~* .(jpg|png|mp3)$ {
        прокси_пароль https://example.net/data/;
        proxy_redirect https://example.net/data/ /
    }

Однако я продолжаю получать ошибку

«proxy_pass» не может иметь часть URI в местоположении, заданном регулярным выражением, или внутри именованного местоположения, или внутри оператора «if», или внутри блока «limit_except»

Что происходит не так и как мне правильно написать этот блок местоположения?

Рейтинг:2
флаг gr

Вам нужно изменить URI, используя переписать директива, если вы хотите передать другой URI на серверную часть в блоке местоположения, совпадающем с регулярным выражением (то же самое верно для именованных местоположений):

расположение ~* \.(jpe?g|png|mp3)$ {
    переписать (.*) /data$1 break;
    proxy_pass https://example.net;
    proxy_redirect https://example.net/data/ /
}
Shaunak avatar
флаг cn
Идеальный! Спасибо

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.