幾天來我一直在嘗試解決這個問題,但我不明白,而且我在互聯網上沒有找到任何有用的東西,所以我將非常感謝每一個提示。
幾週前,我設定了一個新的 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 頁面未找到」訊息。 traefik 容器拋出以下錯誤訊息:
level:error msg="Error creating route for frontend frontend-HOST-qwert-de-0: error parsing rule: error parsing rule: 'HOST:qwert.de'. Unknown function: 'HOST'"
我不知道我是否必須以某種方式使用新網域配置伺服器或我做錯了什麼。
我的 /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
我真的很感激每一個回覆。
答案1
我在這裡使用主持人代替主持人
-l "traefik.frontend.rule=主機:appone.qwert.ch"