Назад | Перейти на главную страницу

apache2 - несколько поддоменов, каждый из которых обслуживается через обратный прокси-сервер на разных локальных портах

У меня есть следующие локальные службы, расположенные на сервере с IP 198.51.100.1:

127.0.0.1:5000 - special pda service
127.0.0.1:8888 - www service

Я настроил следующие записи DNS:

foo.com - A - 198.51.100.1
pda.foo.com - A - 198.51.100.1
www.foo.com - A - 198.51.100.1

Идея в том, что если пользователь вводит pda.foo.com сайт будет выступать против 127.0.0.1:5000 через SSL и что если пользователь вводит www.foo.com сайт будет выступать против 127.0.0.1:8888 через SSL.

У меня только такая конфигурация sites-enabled файл конфигурации:

NameVirtualHost *:80

<IfModule mod_ssl.c>
<VirtualHost *:80>
        ServerName pda.foo.com
        Redirect permanent / https://pda.foo.com
</VirtualHost>
<VirtualHost *:80>
        ServerName www.foo.com
        Redirect permanent / https://www.foo.com
</VirtualHost>
</IfModule>

NameVirtualHost *:443
<IfModule mod_ssl.c>
<VirtualHost *:443>

        ServerName pda.foo.com

        SSLProxyEngine On
        ProxyPass / http://127.0.0.1:5000/
        ProxyPassReverse / http://127.0.0.1:5000/

        SSLEngine On
        SSLCertificateFile  /etc/letsencrypt/live/server2.foobar.com/fullchain.pem
        SSLCertificateKeyFile       /etc/letsencrypt/live/server2.foobar.com/privkey.pem

</VirtualHost>
<VirtualHost *:443>

        ServerName www.foo.com

        SSLProxyEngine On
        ProxyPass / http://127.0.0.1:8888/
        ProxyPassReverse / http://127.0.0.1:8888/

        SSLEngine On
        SSLCertificateFile  /etc/letsencrypt/live/server2.foobar.com/fullchain.pem
        SSLCertificateKeyFile       /etc/letsencrypt/live/server2.foobar.com/privkey.pem

</VirtualHost>
</IfModule>

Это отображается, когда вы делаете apachectl -t -D DUMP_VHOSTS:

AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/apache2/sites-enabled/mysite.conf:1
VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server pda.foo.com (/etc/apache2/sites-enabled/mysite.conf:4)
         port 80 namevhost pda.foo.com (/etc/apache2/sites-enabled/mysite.conf:4)
         port 80 namevhost www.foo.com (/etc/apache2/sites-enabled/mysite.conf:10)
*:443                  is a NameVirtualHost
         default server pda.foo.com (/etc/apache2/sites-enabled/mysite.conf:20)
         port 443 namevhost pda.foo.com (/etc/apache2/sites-enabled/mysite.conf:20)
         port 443 namevhost www.foo.com (/etc/apache2/sites-enabled/mysite.conf:47)

Когда я пытаюсь получить доступ к www.foo.com, я получаю сайт, который не был найден поставщиком услуг DNS.

Когда я пытаюсь получить доступ к pda.foo.com, он перенаправляется на SSL, но я снова получаю сайт, не найденный поставщиком услуг.

Какие-нибудь советы?