Docker Apache虚拟主机

时间:2019-04-04 08:34:51

标签: 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 个答案:

答案 0 :(得分:0)

我终于找到了解决方案。我创建了一个新配置(new_site.conf)并添加了我的virtualhost配置。然后启用了它(a2ensite new_site.conf),重新启动了服务,一切仍然正常。我尝试通过url访问,它很好地将我重定向到了我的应用程序。