Docker Apache Virtualhost

#docker #apache2 #ubuntu-18.04

#docker #apache2 #ubuntu-18.04

Вопрос:

Я пытаюсь перенести свои приложения на docker, но с Apache у меня возникают некоторые проблемы. Я добавляю свой site.conf в apache (это работает нормально):

 <VirtualHost *:80>
        ServerName example.com.
        ServerAlias api.example.com

        Redirect permanent / https://www.example.com/
</VirtualHost>

<VirtualHost *:80>
        ServerName example.com
        ServerAlias www.example.com

        RewriteEngine on
        RewriteOptions inherit
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

<VirtualHost *:443>
        ServerName www.example.com
        ServerAlias www.example.com

        SSLEngine on
        SSLCertificateFile /etc/apache2/external/certificate.crt
        SSLCertificateKeyFile /etc/apache2/external/private.key
        SSLCACertificateFile /etc/apache2/external/ca_bundle.crt

        SSLProxyEngine on
        SSLProxyVerify none
        SSLProxyCheckPeerCN off
        SSLProxyCheckPeerName off
        SSLProxyCheckPeerExpire off

        ProxyPass / http://example:8090/
        ProxyPassReverse /  http://example:8090/

        RewriteEngine on
        RewriteOptions inherit

</VirtualHost>
  

Но когда я пытаюсь добавить новый виртуальный хостинг с поддоменом, контейнер не запускается:

 <VirtualHost *:80>
    ServerName sub1.example.com
    ServerAlias sub1.example.com

    ProxyPreserveHost On
    ProxyPass / http://myapp2:8090/
    ProxyPassReverse /  http://myapp2:8090/

</VirtualHost>

<VirtualHost *:80>
    ServerName sub2.example.com
    ServerAlias sub2.example.com

    ProxyPreserveHost On
    ProxyPass / http://myapp2:8090/
    ProxyPassReverse /  http://myapp2:8090/

</VirtualHost>
  

Я копирую файлы журнала из контейнера на свой хост-компьютер, но файл errors.logs не показывает какой-либо существенной ошибки относительно того, почему он не загружается. Команда docker logs container-name также не очень помогает.

Есть идеи о возможной ошибке?

Ответ №1:

Я, наконец, нашел решение. Я создал новую конфигурацию (new_site.conf) и добавил свою конфигурацию virtualhost. Затем я включил его (a2ensite new_site.conf), я перезапустил службу, и все по-прежнему работало. Я попытался получить доступ через URL, и он перенаправил меня к моему приложению.