基于docker-gen的实现nginx-proxy对docker服务自动化部署以及负载均衡。
发布日期:2021-05-10 23:28:01 浏览次数:21 分类:精选文章

本文共 1409 字,大约阅读时间需要 4 分钟。

基于以下Docker Compose配置示例,以下是关于Nginx Proxy的详细使用方法和配置说明:

Nginx Proxy的Docker Compose配置示例代码如下

version: '3'
services:
nginx-proxy:
image: nginxproxy/nginx-proxy
networks:
- webproxy
ports:
- "80:80"
links:
- whoami2
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
whoami2:
image: training/webapp
networks:
- webproxy
expose:
- "5000"
environment:
- VIRTUAL_HOST=wangchangyu.cn
whoami3:
image: training/webapp
networks:
- webproxy
expose:
- "5000"
environment:
- VIRTUAL_HOST=wangchangyu.cn
webproxy:
external: true

配置说明与使用方法

  • 服务定义与网络配置

    各个服务均使用同一网络webproxy进行通信,可确保组件间的互联互通。Nginx Proxy通过将请求转发到目标服务(whoami2/whoami3),实现前端负载均衡。

  • Nginx Proxy配置

    • 端口绑定:Nginx Proxy服务自动监听80端口,接收外部请求。
    • 容器间通信:通过links参数将whoami2服务挂载到Nginx Proxy容器中,可实现容器间的通信和资源共享。
    • 宿主机 Docker sock 协议:通过挂载/var/run/docker.sock实现与宿主机 Docker 系统的通信,支持容器管理命令操作。
  • 应用服务配置

    • whoami2 和 whoami3 服务

      • 使用相同的imagetraining/webapp)配置,确保业务逻辑一致性。
      • 注:由于两服务使用相同的VIRTUAL_HOST设置,一台服़机器将自动为请求进行负载均衡。
    • 环境变量配置

      • 设置VIRTUAL_HOST,确保服务路由正确,负载均衡自动生效。
      • 其他配置参数(如working_dirports)可以根据实际需要进行个性化设置。
  • 使用场景示例

    该配置适用于:

    • 中小型微服务架构,需要前端负载均衡但不希望引入额外的反向代理复杂度。
    • 内部服务间的高性能请求转发场景。
    • 简单的 Load Balancer 从一群服务中分发请求。
  • 注意事项

  • 容器网络域选择:确保所有服务都属于同一网络域,避免因网络配置导致服务无法互联。
  • 依赖项安装:在运行前,需先安装各服务所需的依赖项(如编译器、Python环境等)。
  • 负载均衡检查:如果发现某台服务未正确接收请求,建议检查网络配置或负载均衡逻辑。
  • 以上配置示例可根据实际需求进行调整,满足不同场景下的 Load Balancing 和服务路由需求。

    上一篇:git初始化建立的几种方式
    下一篇:docker-compose运行dockerfile+gunicorn+flask

    发表评论

    最新留言

    感谢大佬
    [***.8.128.20]2025年04月23日 00时07分13秒