我正在尝试将我的应用程序迁移到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命令也无济于事。
对可能的错误有任何想法吗?
答案 0 :(得分:0)
我终于找到了解决方案。我创建了一个新配置(new_site.conf)并添加了我的virtualhost配置。然后启用了它(a2ensite new_site.conf),重新启动了服务,一切仍然正常。我尝试通过url访问,它很好地将我重定向到了我的应用程序。