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, но я снова получаю сайт, не найденный поставщиком услуг.
Какие-нибудь советы?