У меня есть идея для сайта, который я хочу создать сам. Я читал в документации, в статьях и в учебных пособиях. Но я не смог полностью найти ответы на свои вопросы.
Положение:
У меня есть проект на AWS Lightsail (в том числе: Angular 7, Node, MongoDB, Nginx, Express). У меня есть несколько доменных имен с динамическими поддоменами, которые используются для разграничения информации для сотрудников клиентов / брендов. Несколько доменов являются частью этого, чтобы облегчить навигацию и общение.
Например:
client1.domain1.com/some/info/
client1.domain2.com/some/info/
..etc.
Настройка:
Я настроил субдомены и домены через Nginx , чтобы он работал с субдоменами с подстановочными знаками, а также с декларированными субдоменами и доменами. Динамические субдомены настроены так:
server {
listen 80;
listen [::]:80;
server_name ~^((?<sub>.*)\.)(?<domain>[^.]+)\.com$;
root /opt/bitnami/nginx/html/$domain/$sub;
try_files $uri $uri/ /index.html$is_args$args;
}
который выводит как этот каталог:
/opt/bitnami/nginx/html/domain1/client1/
(client1 находится там только для тестирования. В идеальном случае это не каталог, а domain1 & client1 должен быть только в URL-адресе в качестве самого домена и субдомена. Не в качестве каталога)
Мысли:
В идеале это будет одна система, на которую указывает каждый домен, а контент будет дифференцирован в зависимости от имени домена и клиента. Я думал о следующем:
- Создайте отдельное приложение для каждого домена. Но это дало бы много дублирующего кода и работало бы, чтобы поддерживать / делать изменения.
- Есть компонент для каждого домена. Но тогда я не знаю, как заставить работать маршрутизацию.
- Наличие нескольких приложений в одном проекте. Но Angular развертывает все в 1 HTML-файле с JavaScript. Как мне заставить работать там маршрутизацию?
- и др.
Но, похоже, никто не работает так, как я себе представляю. Как мне сделать это правильно? Как я смогу обслуживать приложение, используя несколько доменов, корректным, масштабируемым и безопасным способом?