Рейтинг:0

Как вложить два сайта в один блок сервера nginx

флаг br

С помощью nginx я пытаюсь настроить два статических веб-сайта в одном домене. Первое нахождение в пример.com, а другое — небольшое приложение React в example.com/хайку. Как это может быть сделано?

Я сталкиваюсь с проблемами, когда файлы таблицы стилей и javascript для example.com/хайку запрашиваются у главного пример.com. Поскольку все URI ресурса страницы начинаются с косой черты (например, /статические/style.css), nginx обрабатывает их как принадлежащие пример.com а не получать их от /хайку.

Оба веб-сайта занимают отдельные каталоги на сервере. пример.com Я сидел /srv/http/домен, и example.com/хайку Я сидел /srv/http/хайку

Вот соответствующая часть моего блока сервера nginx:

корень /srv/http;
место расположения / {
  корень /srv/http/домен;
}
местоположение / хайку {
  псевдоним /srv/http/haiku;
}

Я провел исследование этих модулей nginx и понял, почему сейчас это не работает. Переход к example.com/haiku/index.html обслуживает страницу, но его ссылки на /статические/CSS/style.css и /статические/js/main.js бьют по / блок локации. Мне нужна какая-то внутренняя переработка, которая займет /статические/CSS/style.css и измените его на /хайку/статические/CSS/style.css, где находится файл. Я не нахожу похожих вопросов в Google или SE.

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

Я также не хочу просто менять URI для файлов css и js, потому что я хочу иметь возможность развернуть это маленькое приложение React в любом корневом блоке сервера.

Рейтинг:1
флаг us

Стандартный способ облегчить это — настроить корневой URL-адрес приложения, чтобы оно в первую очередь генерировало правильные URL-адреса ресурсов.

https://skryvets.com/blog/2018/09/20/an-elegant-solution-of-deploying-react-app-into-a-subdirectory/ показывает один подход для React к настройке базового URL-адреса приложения.

Не рекомендуется переписывать HTML на стороне nginx. Это потребует дополнительных ресурсов и может вызвать нежелательные побочные эффекты.

Justin St-Amant avatar
флаг br
Да, изменение корневого URL-адреса приложения было решением моей проблемы. Документация приложения Create React по изменению корневого URL-адреса также была для меня ценной: https://create-react-app.dev/docs/deployment/#building-for-relative-paths

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

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