几天以来我一直在尝试解决这个问题,但我没有得到它,我在互联网上也没有找到任何有用的东西,所以我会非常感谢每一个提示。
几周前,我设置了一个新的 Ubuntu 16.04.4 LTS 服务器。我安装了 docker 并在其上运行了一个内部网页。现在我们有了一个额外的网页,我想让它们可以通过两个不同的子域访问。
- appone.qwert.de
- apptwo.qwert.de
出于这个原因,我购买了域 qwert.de 并要求我的提供商提供一个固定的 IP 地址。我的服务器现在可以通过域 qwert.de 访问。
然后我发现 traefik 几乎可以满足我的所有需求。所以我用以下配置安装了它:
debug = false
logLevel = "ERROR"
defaultEntryPoints = ["https","http"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[retry]
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "qwert.de"
watch = true
exposedbydefault = false
[acme]
email = "[email protected]"
storage = "acme.json"
entryPoint = "https"
OnHostRule = true
[acme.httpChallenge]
entryPoint = "http"
然后我使用以下 docker-compose 命令启动容器:
version: '2'
services:
traefik:
image: traefik:latest
restart: always
ports:
- 80:80
- 443:443
networks:
- web
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /srv/docker/traefik/traefik.toml:/traefik.toml
- /srv/docker/traefik/acme.json:/acme.json
container_name: traefik
networks:
web:
external: true
一切正常,我收到了 traefik 的典型“404 页面未找到”消息。之后,我使用以下代码启动了一个基本的 nginx 容器:
sudo docker run -d --label "traefik.frontend.rule=HOST:appone.qwert.ch" --network web nginx:latest
但是,当我现在尝试调用网站 appone.qwert.ch 时,我也会收到典型的“404 页面未找到”消息。
我不知道我是否必须以某种方式使用新域配置服务器,或者我是否做错了什么。
我的 /etc/hosts/ 文件如下所示:
127.0.0.1 qwert.de Linux-Server
127.0.1.1 Linux-Server
212.153.72.45 qwert.de Linux-Server
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
我真的很感激每一个回复。
您需要使用
Host
而不是HOST
sudo docker run -d --label "traefik.frontend.rule=Host:appone.qwert.ch" --network web nginx:latest