Docker compose with nginx reverse proxy

背景: Dockge部署了多个docker compose,之前暴露端口全部绑定为tailscale的内网ip,现增加nginx proxy manager反向代理来暴露部分应用至公网

wordpress docker compose:

version: "3.1"
services:
  wordpress:
    image: wordpress
    restart: always
    ports:
      - TAILSCALE_IP:8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: *********
      WORDPRESS_DB_PASSWORD: *********
      WORDPRESS_DB_NAME: *********
      WP_REDIS_HOST: *********
      WP_REDIS_PORT: *********
    volumes:
      - /zmain/wordpress/var/www/html:/var/www/html:rwz
    networks:
      - dockge_default
  db:
    image: mysql
    restart: always
    environment:
      MYSQL_DATABASE: *********
      MYSQL_USER: *********
      MYSQL_PASSWORD: *********
      MYSQL_RANDOM_ROOT_PASSWORD: *********
    volumes:
      - /zmain/mysql/var/lib/mysql:/var/lib/mysql:rwz
    networks:
      - dockge_default
networks:
  dockge_default:
    external: true

nginx proxy manager docker compose:

version: "3.8"
services:
  nginx:
    image: jc21/nginx-proxy-manager:latest
    restart: unless-stopped
    ports:
      # These ports are in format <host-port>:<container-port>
      - 80:80 # Public HTTP Port
      - 443:443 # Public HTTPS Port
      - TAILSCALE_IP:81:81 # Admin Web Port
      - TAILSCALE_IP:21:21 # FTP
      # Uncomment the next line if you uncomment anything in the section
      # environment:
      # Uncomment this if you want to change the location of
      # the SQLite DB file within the container
      # DB_SQLITE_FILE: "/data/database.sqlite"

      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'

    volumes:
      - /zmain/nginx_proxy_manager/data:/data
      - /zmain/nginx_proxy_manager/letsencrypt:/etc/letsencrypt
    networks:
      - dockge_default
networks:
  dockge_default:
    external: true

要点:

  1. 需要共享网络的docker compose添加同一个networks配置,此处使用dockge默认的dockge_default。也可以自己创建一个network。
  2. 注意修改关联应用中对于访问地址的设置,例如wordperess中修改站点地址为nginx proxy manager中配置的域名
  3. 配合cloudflare使用时如果遇到奇怪的502报错,可尝试修改SSL/TLS 加密为 完全

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注