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