Рейтинг:0

Создание новой конфигурации обратного прокси в Nginx направляет на другую конфигурацию

флаг jp

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

У меня есть несколько веб-сайтов/сервисов, работающих на разных серверах. У меня есть обратный прокси-сервер, работающий на сервере здесь, дома, чтобы направлять разные субдомены в места назначения в другом месте. Создаю новую конфу, указываю куда должен идти мой proxy_pass. Мой /etc/nginx/conf.d имеет много разных конфигураций, но для простоты предположим, что у меня есть эти три:

а.конф
б.конф
c.conf

Допустим, c.conf — это новый, который я создал/работаю над настройкой. Вот его содержимое:

сервер {
  слушать 80;
  server_name новый поддомен.root.net;

  место расположения / {
      прокси_пароль http://222.222.222.222:4011;
      proxy_set_header Хост $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

      # обновить до протокола WebSocket по запросу
      proxy_set_header Обновить $http_upgrade;
      proxy_set_header Соединение "Обновление";
  }

}

куда http://222.222.222.222:4011 мой (запутанный) пункт назначения.

При переходе к newsubdomain.root.net я попадаю на proxy_pass, настроенный в a.conf. Пытаясь устранить неполадки, я переименовал a.conf в a.conf.bak. Теперь при переходе к newsubdomain.root.net я попадаю на proxy_pass, определенный в b.conf.

Это должно быть что-то простое, чего мне не хватает, но сейчас я в растерянности. Таким образом я настроил множество новых конфигураций (более 20 на этом сервере) без проблем, и с тех пор ничего не изменилось (по крайней мере, насколько мне известно, я единственный, кто имеет доступ к этому серверу).

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

Заранее спасибо всем, кто может дать совет.

флаг cn
Не могли бы вы проверить, есть ли у вас параметр `default_server` для директивы `listen` на любом из ваших виртуальных хостов?
sammo22 avatar
флаг jp
`grep -r default_server /etc/nginx` отображается только на сайтах, доступных, но не включенных, или где-либо еще.
djdomi avatar
флаг za
это имелось в виду, если у вас есть какая-то ловушка, однако покажите, пожалуйста, `nginx -tT`
sammo22 avatar
флаг jp
Помимо изменения доменных имен и IP-адресов для конфиденциальности, это то, что у меня есть. https://pastebin.com/BHLTJjNz (Вывод был слишком длинным для комментария)
флаг cn
@ sammo22 помимо того, что ваша конфигурация nginx выглядит беспорядочно (извините за это), я советую вам просто проверить все с нуля и создать базовую конфигурацию nginx по умолчанию с одним виртуальным хостом, а затем добавлять виртуальные хосты один за другим, пока вы найдете свою проблему.
Richard Smith avatar
флаг jp
Когда он показывает другие домены - адресная строка браузера вообще изменилась? Это может быть переход на недопустимое доменное имя или переход на https. Вы должны протестировать сервер с помощью `curl -I http://newsubdomain.example.net`

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

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