Рейтинг:0

NGINX устанавливает заголовок обратного прокси-сервера на основе URL-адреса

флаг cf

Я настроил обратный прокси для статического контента на сайте. Все работает, единственная проблема в том, что есть несколько страниц, на которых статического контента нет в этом месте. Я пытаюсь сделать что-то, где я ТОЛЬКО проксирую этот контент для некоторых страниц, или проще наоборот, проксирую контент для всех страниц, кроме нескольких.

Текущий прокси

расположение /сайты/по умолчанию/файлы/ {    
    proxy_set_header Адрес хоста.com;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $host;
    прокси_пароль https://url.com;
}

Но мне нужен какой-то способ сделать следующее (я знаю, что этот синтаксис на 100% неверен, просто придумываю, чтобы дать представление о том, что я пытаюсь сделать)

расположение /сайты/по умолчанию/файлы/ {
    if (request_url != '/cart' || request_url != 'оформить заказ') {
        proxy_set_header Адрес хоста.com;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $host;
        прокси_пароль https://url.com;
    }
}
Рейтинг:0
флаг cf

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

Сначала я создал карту переменных, которая условно устанавливает значение на основе значения $http_referer, которое находится в NGINX.

карта $http_referer $resources_location {
    по умолчанию "url.com";
    "~*/page2" "url2.com";
    "~*/page3" "url2.com";
}

Это берет переменную $http_referer и устанавливает переменную $resources_location на основе значения $http_referer.

по умолчанию используется основной URL-адрес, а затем у меня есть выражения регулярных выражений, чтобы определить, есть ли на странице /page2, /page3.

Один улов, который я предполагаю, https://url.com/page2 вызовет это, так что https://url.com/sub/page2. У меня нет необходимости беспокоиться об этом, но можно было бы, поэтому я бы тоже проверил.

Затем я использую новую переменную, установленную в прокси

расположение /сайты/по умолчанию/файлы/ {        
    proxy_set_header Хост $resources_location;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $host;
    proxy_pass https://${resources_location};
}  

Я новичок в NGINX, поэтому, если есть что-то, что можно сделать лучше, дайте мне знать!!

флаг cn
Вы имели в виду "url3" вместо "page3"?
флаг cf
@AlexisWilke да, просто ошибка при удалении идентифицирующих данных, которые мы на самом деле используем.

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

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