NGINX Proxy_pass: используйте proxy_host в качестве хоста заголовка запроса - PullRequest
0 голосов
/ 21 мая 2018

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

Я попытался использовать "proxy_set_header Host $ proxy_host" (и попытался изменитьзначение $ host, даже точное имя хоста, которое я хочу. Но когда я использую Google Chrome для проверки хоста запроса, это все еще IP-адрес сервера, который я использовал для настройки proxy_pass.

Ниже приведен мой конфигПожалуйста, помогите

location / {
proxy_pass https://example.com;
proxy_set_header Host $proxy_host;
proxy_set_header X-Original-URI $request_uri;
}

Спасибо

1 Ответ

0 голосов
/ 21 мая 2018

Посмотрите примеры из документов:

nginx сначала решает, какой сервер должен обработать запрос.Давайте начнем с простой конфигурации, где все три виртуальных сервера прослушивают порт *: 80:

server {
    listen      80;
    server_name example.org www.example.org;
    ...
}

server {
    listen      80;
    server_name example.net www.example.net;
    ...
}

server {
    listen      80;
    server_name example.com www.example.com;
    ...
}

В этой конфигурации nginx проверяет только поле заголовка запроса Host, чтобы определить, на какой сервер следует направить запроск.Если его значение не совпадает ни с каким именем сервера, или запрос вообще не содержит этого поля заголовка, то nginx направит запрос на сервер по умолчанию для этого порта.В приведенной выше конфигурации сервер по умолчанию - первый - это стандартное поведение nginx по умолчанию.Также можно явно указать, какой сервер должен быть по умолчанию, с помощью параметра default_server в директиве прослушивания:

server {
    listen      80 default_server;
    server_name example.net www.example.net;
    ...
}

Теперь имейте в виду, что $host является конкретно первым server_name, определенным втекущий блок сервера.если у вас есть несколько server_name, появится только первое, но если вы хотите, чтобы ваш бэкэнд получил фиксированное имя host, используйте:

proxy_set_header Host "your.fixed.hostname";
...