Как настроить nginx.conf для простого перенаправления прохода прокси?

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

Я хочу, чтобы весь трафик на мой сервер передавал некоторый IP 1.2.3.4 через прокси, если он не соответствует / blog , и в этом случае он должен проксировать 5.5. 5.5

Я потратил некоторое время на догадки и проверку конфигурации, а также прочитал кучу документов, но количество вариаций огромно, и я не могу найти точку привязки даже для одного полностью функционального простого пример для посева из. На данный момент это то, что, как мне кажется, должно сработать:

http {
  server {
    listen 80;

    location / {
      proxy_pass 1.2.3.4
    }

    location ~ /blog {
      proxy_pass 5.5.5.5
    }
  }
}

Я обновил конфигурацию и перезагрузился без каких-либо ошибок, но когда я перехожу на сервер, я просто получаю значение по умолчанию Добро пожаловать в nginx! целевая страница.

Что мне здесь не хватает?

0
задан 5 November 2019 в 21:35
2 ответа

В вашем блоке сервера отсутствует директива имя_сервера .

Из документации :

В этой конфигурации nginx проверяет только заголовок запроса поле «Хост», чтобы определить, на какой сервер следует направить запрос. Если его значение не соответствует ни одному имени сервера или запрос вообще не содержит этого поля заголовка, , тогда nginx направит запрос на сервер по умолчанию для этого порта .

Выделено мной.

У вашего блока нет имени сервера, поэтому запрос направляется на сервер по умолчанию, который определен в конфигурации по умолчанию.

Вам нужно только добавить имя_сервера :

http {
server {
    listen 80;
    server_name example.com;

    # the rest of your config
}
}

Нет необходимости удалять все из конфигурации по умолчанию.

1
ответ дан 4 December 2019 в 15:35

В конце концов, эта настройка в основном правильная. listen 80 можно отбросить, так как это значение по умолчанию, в противном случае все в порядке.

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

https://stackoverflow.com/questions/14460935/nginx-only-shows-welcome-page

Короче говоря, перейдите на etc / nginx / sites -enabled . ls , чтобы посмотреть, что там. Если вы видите что-либо, что связано, вы можете использовать sudo unlink ./default-or-name-of-item[1174017 impression.

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

0
ответ дан 4 December 2019 в 15:35

Теги

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