inhumantsar.dockerautoproxy

dockerautoproxy

什么?

使用 jwilder/nginx-proxy Docker 镜像自动化 Docker Swarm 中的反向代理设置。

如何使用?

角色使用

该镜像设计为动态配置,所以事先不需要做太多准备。请查看 defaults/main.yml

默认使用 alpine 镜像,若要使用 debian:jesse 镜像,请将 nginx_version 更改为 latest

创建一个名为 nginx_proxy_net 的网络,代理的容器必须加入这个网络。

Nginx 代理使用

需要代理的容器需要做两件事情:暴露要代理的端口,并指定一个虚拟主机。

可以在 Dockerfile 中使用 EXPOSE 指定端口,也可以在命令行中使用 --expose,或在 Docker Compose 文件中使用 expose

虚拟主机必须在名为 VIRTUAL_HOST 的环境变量中指定。

高级用法

自定义 Nginx 配置

可以通过挂载包含 Nginx 配置文件的主机路径来加载自定义配置,使用 dockerautoproxy_config_path 变量。如果主机上该路径不存在,则会自动创建。

SSL 证书

SSL 证书可以自动生成或手动指定。默认情况下,它们存储在容器之间共享的数据卷中。您可以使用 dockerautoproxy_certs_path 挂载主机上的路径以存储证书。

要自动生成证书,请将 Ansible 变量 dockerautoproxy_ssl_companion 设置为 true。这将启动一个第二个容器来处理使用 Let's Encrypt 的 SSL 证书生成。为了启用此服务,请设置容器的环境变量 LETSENCRYPT_HOSTLETSENCRYPT_EMAIL。例如:

$ docker run -d \
    --name example-app \
    -e "VIRTUAL_HOST=example.com,www.example.com,mail.example.com" \
    -e "LETSENCRYPT_HOST=example.com,www.example.com,mail.example.com" \
    -e "[email protected]" \
    tutum/apache-php
关于项目

Sets up a dynamic Nginx reverse proxy on Docker Swarm

安装
ansible-galaxy install inhumantsar.dockerautoproxy
许可证
bsd-3-clause
下载
90
拥有者