首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何创建一个Docker文件来运行Caddy服务器和子域上的其他文件?

如何创建一个Docker文件来运行Caddy服务器和子域上的其他文件?
EN

Stack Overflow用户
提问于 2019-06-17 01:17:35
回答 2查看 1.9K关注 0票数 1

我想运行以下服务/停靠映像(在它们各自的子域上)。

代码语言:javascript
复制
╔═══════════╦═════════════════════╦═════════════════════════╗
║  Service  ║         URL         ║         Docker          ║
╠═══════════╬═════════════════════╬═════════════════════════╣
║ Plex      ║    plex.example.com ║ plexinc/pms-docker      ║
║ Calibre   ║ calibre.example.com ║ linuxserver/calibre-web ║
║ NextCloud ║   cloud.example.com ║ nextcloud               ║
║ Gitea     ║     git.example.com ║ gitea/gitea             ║
║ Caddy     ║         example.com ║ abiosoft/caddy          ║
╚═══════════╩═════════════════════╩═════════════════════════╝

我怎么能做到这一点?--我对Docker几乎没有经验,但是我理解它的好处,就像模块化和沙箱一样。我已经找到了,但这是针对nginx和Nextcloud的。我更喜欢使用Caddy,因为它具有自动HTTPS注册和HTTP/2支持。

在路径上运行而不是在子域上运行是不可取的,但可以接受。

EN

回答 2

Stack Overflow用户

发布于 2019-06-17 09:56:20

我并没有真正的经验,但听起来你想要设置一个代理服务器。您想要做的是将Caddy端口(我假设80和443)映射到主机(https://docs.docker.com/compose/compose-file/#ports),然后在Caddy配置中设置必要的代理转发。

例如,要将所有请求转发给plex.example.com,您只需将plex.example.com域指向您的服务器,您就可以在服务器上使用映射到Caddy服务的80和443个端口运行您的docker(我假设)项目。然后,当请求出现在你的卡迪可以转发请求的基础上的域名。因此,在这种情况下,您将检查传入的plex.example.com请求,将它们转发给复合服务(在使用docker时,您可以使用复合服务名作为主机名。在由docker-复合命令创建的网络中,服务名称解析为相应的IP地址)

票数 0
EN

Stack Overflow用户

发布于 2019-06-21 15:11:24

根据您的描述,所有服务都运行在同一台机器上,但端口不同,如下所示:

代码语言:javascript
复制
╔═══════════╦═════════════════════╦═════════════════════════╦═════════════════╗
║  Service  ║         URL         ║         Docker          ║      Address    ║ 
╠═══════════╬═════════════════════╬═════════════════════════╬═════════════════╣
║ Plex      ║    plex.example.com ║ plexinc/pms-docker      ║ localhost:10001 ║
║ Calibre   ║ calibre.example.com ║ linuxserver/calibre-web ║ localhost:10002 ║
║ NextCloud ║   cloud.example.com ║ nextcloud               ║ localhost:10003 ║
║ Gitea     ║     git.example.com ║ gitea/gitea             ║ localhost:10004 ║
║ Caddy     ║         example.com ║ abiosoft/caddy          ║ localhost:10000 ║
╚═══════════╩═════════════════════╩═════════════════════════╩═════════════════╝

那么您的Caddyfile可能如下所示:

代码语言:javascript
复制
example.com {
    proxy / localhost:10000 {
        transparent
    }
}

plex.example.com {
    proxy / localhost:10001 {
        transparent
    }
}

calibre.example.com {
    proxy / localhost:10002 {
        transparent
    }
}

cloud.example.com {
    proxy / localhost:10003 {
        transparent
    }
}

git.example.com {
    proxy / localhost:10004 {
        transparent
    }
}

如果您的所有服务都在Docker中运行,您可能还需要考虑特雷菲克

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56623732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档