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.
Type Name Latest commit message Commit time
Failed to load latest commit information.


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.


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 .


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

$ docker run -e  ...

Provided your DNS is setup to forward 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


  • 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.