У меня есть два приложения.
- Приложение Laravel - Быть просто динамическим веб-сайтом. Не имеет
знание данных. Все данные извлекаются из второго приложения.
с помощью AJAX-запросов. Работает на
127.0.0.1:8000
.
- Приложение ржавчины - Веб-приложение, содержащее весь бизнес
логика и доступ к данным. Работает на
127.0.0.1:8080
.
Оба приложения должны быть доступны по URL-адресу. пример.com
.
Для этого я хочу использовать обратный прокси Nginx. Я уже могу перенаправить все запросы в свое приложение Laravel.
События {}
http {
сервер {
слушать 80;
# Веб-сайт
место расположения / {
прокси_пароль http://127.0.0.1:8000;
}
}
}
Пока приложение Laravel работает, мне действительно нужна следующая конфигурация Nginx:
- Конкретные страницы, такие как
/Новости
, /
, /о
,/контакт
,... следует перенаправить на 127.0.0.1:8000
.
- Примечание. Страницы выше могут содержать GET-параметры, например,
/ новости? статья = abc
.
- ВСЕ другие запросы должны быть перенаправлены на
127.0.0.1:8080
.
- Примечание. 127.0.0.1:8080 часто может содержать субдомен. Но этот поддомен должен действовать как подстановочный знак и неизвестен во время настройки. Пример:
bussiness1.example.com
, bussiness2.example.com
, businnesX.example.com
,...
Субдомен возвращает персонализированную страницу, которую может запросить неограниченное количество предприятий на example.com.
Как бы я достиг этой конфигурации? Я думал что-то вроде этого?
#ПСЕВДО
События {}
http {
сервер {
слушать 80;
# Веб-сайт
место расположения / {
прокси_пароль http://127.0.0.1:8000;
}
местоположение / новости {
прокси_пароль http://127.0.0.1:8000;
}
местоположение / о {
прокси_пароль http://127.0.0.1:8000;
}
# Применение
место расположения * {
прокси_пароль http://127.0.0.1:8080;
}
}
}
Изменить ответ Теро:
Мне нужен своего рода подстановочный знак для субдоменов.
# Всеобъемлющее приложение
место расположения / {
proxy_pass http://$subdomain.$application;
}
abc.example.com должен перейти на abc.127.0.0.1:8080
def.example.com должен перейти к def.127.0.0.1:8080
...
Я знаю, что у IP не может быть поддомена, но не беспокойтесь об этом. Я решил это с виртуальными хостами.
Редактировать 2 - передать поддомен запроса в proxy_pass:
сервер {
слушать 80;
имя_сервера *.website.com;
server_name ~^(?<субдомен>.+)\.website\.com$;
место расположения / {
proxy_pass http://$subdomain.vhost.local:8080;
}
}
Это правильный способ перенаправления dynamicxxx.website.com на dynamicxxx.vhost.local:8080?