Skip to content
Automated H2O reverse proxy for Docker containers. An alternative jwilder/nginx-proxy.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.dockerignore
Dockerfile
Dockerfile.no-buildarg
LICENSE
Procfile
README.md
circle.yml
h2o.conf
h2o.tmpl
sysctl.conf

README.md

h2o-proxy

Automated H2O reverse proxy for Docker containers. An alternative jwilder/nginx-proxy.

h2o-proxy sets up a container running H2O and docker-gen.
docker-gen generates reverse proxy configs for H2O and reloads H2O use start_server when containers are started and stopped.

Based FROM image is zchee/docker-h2o.

Install

Building docker container.

$ docker build -t zchee/h2o-proxy .

h2o-proxy now support the docker --build-arg new feature build flag.
If you use other versions docker-gen,

$ docker build -t zchee/h2o-proxy --build-arg DOCKER_GEN_VERSION=*.*.* .

Also, Change DOCKER_HOST env,

$ docker build -t zchee/h2o-proxy --build-arg DOCKER_HOST=/path/to/docker.sock .

If you installed docker version is not HEAD, type this command instead of.

$ docker build -t zchee/h2o-proxy -f Dockerfile.no-buildarg .

Usage

Edit host os's sysctl.conf.
e.g. zchee/docker-h2o/sysctl.conf.

To run it:

$ docker run -d -p 80:80 --net=host -v /var/run/docker.sock:/tmp/docker.sock:ro zchee/h2o-proxy

Then start any containers you want proxied with an env var VIRTUAL_HOST=subdomain.youdomain.com

$ docker run -e VIRTUAL_HOST=foo.bar.com  ...

Provided your DNS is setup to forward foo.bar.com to the a host running h2o-proxy, the request will be routed to a container with the VIRTUAL_HOST env var set.

If your are using boot2docker start h2o-proxy with:

$ $(boot2docker shellinit)
$ docker run -p 80:80 -e DOCKER_HOST -e DOCKER_CERT_PATH -e DOCKER_TLS_VERIFY -v $DOCKER_CERT_PATH:$DOCKER_CERT_PATH -it zchee/h2o-proxy

Depend packages

TODO

  • Support HTTP/2 Reverse Proxy ( Wait for the support of H2O )
  • Not dependent perl and Server::Starter
    • start_server use a included script in the H2O
  • reprioritize-blocking-assets ooptions
You can’t perform that action at this time.