Укажите обратный прокси Nginx на виртуальный хост на другой виртуальной машине

У меня есть 1 виртуальная машина с Nginx для распределения входящих запросов для разных доменов (поддоменов) с одного IP на разные виртуальные машины.

Мой файл конфигурации Nginx для одного примера пока очень прост.

server {
  listen 80;
  listen [::]:80;

  server_name cloud.something.xyz;

  location / {
      proxy_pass http://192.168.1.77;
  }
} 

Это указывает на правильную виртуальную машину, но показывает страницу apache по умолчанию на этой виртуальной машине вместо желаемого виртуального хоста (cloud.something.xyz).

Если я перенаправляю порты на http://192.168.1.77 напрямую, то субдомены / включенные сайты будут работать должным образом, поэтому я думаю, что моя конфигурация Apache в порядке, и проблема связана с конфигурацией Nginx.

proxy_pass http://192.168.1.77/folderloacation и подобные попытки просто дают мне ошибки конфигурации и другие загадочные результаты

Что мне не хватает, чтобы прокси использовал правильный виртуальный хост вместо перенаправления на страницу по умолчанию для других виртуальных машин?

0
задан 19 December 2018 в 20:08
1 ответ

Мне больше известно о конфигурации прокси на основе Apach, но вам не хватает сохранения заголовка хоста HTTP.

В вашей настройке заголовок хоста не отправляется на настроенный вами прокси.

] Вы должны сохранить его с помощью модуля под названием http://wiki.nginx.org/HttpProxyModule#proxy_set_header

Соответствующий ответ можно найти здесь: https://stackoverflow.com/questions/ 5834025 / how-to-preserve-request-url-with-nginx-proxy-pass

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

Теги

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