я хочу работать с несколькими службами с несколькими доменами и поддоменами - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть один linux экземпляр виртуальной машины в облачной платформе Google.
, и у меня несколько доминант. Например, aaa.com, bbb.com
и мне нужно несколько сервисов и установить субдомены

service    port    subdomain
apache1    80      aa.aaa.com
apache2    81      bb.aaa.com
tomcat1    8080    cc.aaa.com
tomcat2    8081    dd.aaa.com
nodejs1    8000    ee.aaa.com
nodejs2    8001    ff.aaa.com
rshiny1    3838    aa.bbb.com
rshiny2    3839    bb.bbb.com
ftp1       21      cc.bbb.com
ftp2       20      dd.bbb.com
mariadb1   3306    ee.bbb.com
mariadb2   3307    ff.bbb.com
oracle1    1521    gg.bbb.com
oracle2    1522    hh.bbb.com

, если я использую только apache веб-сервер, я могу установить субдомен на виртуальном хосте.
но это много услуг. Как я могу установить все субдомены?
в apache? node.js? DNS? пожалуйста, ответьте на мой вопрос.
спасибо!

1 Ответ

0 голосов
/ 14 февраля 2020

Это то, для чего нужен обратный прокси. И довольно просто настроить Apache для этого.

Запустить один Apache для основного интерфейса и сделать так, чтобы он служил по умолчанию http / https porst (80/443). Затем используйте его для прокси-запросов Vhost к отдельным службам следующим образом:

<VirtualHost *:80>
    ProxyRequests off
    ProxyPreserveHost On

    ServerName bb.aaa.com

    <Location />
        ProxyPass http://127.0.0.1:81/
        ProxyPassReverse http://127.0.0.1:81/
        Order allow,deny
        Allow from all
    </Location>    
</VirtualHost>

<VirtualHost *:80>
    ProxyRequests off
    ProxyPreserveHost On

    ServerName cc.aaa.com

    <Location />
        ProxyPass http://127.0.0.1:8080/
        ProxyPassReverse http://127.0.0.1:8080/
        Order allow,deny
        Allow from all
    </Location>    
</VirtualHost>

# ...

Создайте по одному для каждой службы. Таким образом, ваш сервер будет маршрутизироваться в зависимости от имени домена в запросе, а не от номера порта TCP.

Конечно, если вы сделаете это, вы не сможете использовать порты по умолчанию (80/443) для своих внутренних служб, так как ваш интерфейс Apache нуждается в этом. Но вы также можете использовать Apache, запускающий службу на портах по умолчанию, в качестве прокси-сервера.

В основном вы получите такой тип установки:

                                         ┌────────────┐
                                    ┌┄┄┄┄┤ apache2:81 │
                                    ┆    └────────────┘
                                    ┆    ┌──────────────┐
                                    ├┄┄┄┄┤ tomcat1:8080 │
           ┌───────────────────┐    ┆    └──────────────┘
internet┄┄┄┤front-end apache:80├┄┄┄┄┤    ┌──────────────┐
           └───────────────────┘    ├┄┄┄┄┤ tomcat2:8081 │
                                    ┆    └──────────────┘
                                    ┆
                                    .
                                    .

Этот тип Настройка очень гибкая, позволяя вам реализовывать такие вещи, как службы балансировки нагрузки и маршрутизации на основе <Location> вместо имени домена или номера порта. До CORS это был стандартный способ реализации микросервисов с использованием одного Apache или Nginx для маршрутизации по пути расположения / URL-адресу.

...