diouxx/apache-proxy
Run Apache2 Web Server like proxy to container web application Docker
100K+
Apache web server like proxy to Docker.
Enable modules :
docker create --name proxy-data --volume /opt/proxy-conf/:/opt/proxy-conf busybox /bin/true
docker run --name apache-proxy --volumes-from proxy-data -p 80:80 -d diouxx/apache-proxy
I recommanded to link also web site container. It's just my advice
docker run --name apache-proxy --link sitecontainer:sitecontainer --volumes-from proxy-data -p 80:80 -d diouxx/apache-proxy
And an exemple proxy configurations
<VirtualHost *:80>
ServerName yoursite.domain.com
ProxyPass "/" "http://sitecontainer/"
ProxyPassReverse "/" "http://sitecontainer/"
</VirtualHost>
To use Apache proxy with HTTPS :
If you can use together HTTP and HTTPS port
<VirtualHost *:80>
ServerName yoursite.domain.com
ProxyPass "/" "http://sitecontainer/"
ProxyPassReverse "/" "http://sitecontainer/"
</VirtualHost>
<VirtualHost *:443>
ServerName yoursite.domain.com
SSLEngine On
SSLCertificateFile /opt/ssl/yourcertificate.crt
SSLCertificateKeyFile /opt/ssl/yourcertificate.key
SSLProxyEngine on
<Location />
ProxyPass / http://sitecontainer/
ProxyPassReverse / http://sitecontainer/
</Location>
</VirtualHost>
If you can user only HTTPS port and force redirect
<VirtualHost *:80>
ServerName yoursite.domain.com
Redirect permanent / https://yoursite.domain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName yoursite.domain.com
SSLEngine On
SSLCertificateFile /opt/ssl/yourcertificate.crt
SSLCertificateKeyFile /opt/ssl/yourcertificate.key
SSLProxyEngine on
<Location />
ProxyPass http://sitecontainer/
ProxyPassReverse http://sitecontainer/
</Location>
</VirtualHost>
docker run --name apache-proxy --volumes yourssldirectory:/opt/ssl/ --volumes-from proxy-data -p 80:80 -p 443:443 -d diouxx/apache-proxy
docker pull diouxx/apache-proxy