網站託管服務器(Think GitHub頁面)旨在與Traefik深入集成以進行路由和TLS終止。
正在進行中
創建目錄目錄的目錄,其中每個目錄的名稱是您要使用的網站的主機名,其中包含其內容。
/mnt/sites
├── example.com
│ └── index.html
└── othersite.example.com
└── index.html
文件如何到達那裡取決於您。 Minio, rsync
,WebDav, ansible
,無關緊要。
traefik-pages
通過HTTP提供商與Traefik集成。當Traefik擊中API時, traefik-pages
列出了包含站點的目錄以獲取所需的主機,並返迴路由器的配置供Traefik使用。這些路由器具有與目錄中的主機名相匹配的規則,並且服務與為traefik-pages
指定的服務匹配。 Traefik不斷對traefik-pages
進行調查,以進行更新的配置,因此新創建的網站很快就會上拾取。
首先,為traefik-pages
創建一個容器:
traefik-pages :
image : theorangeone/traefik-pages:latest
volumes :
- ./sites:/mnt/sites:ro
environment :
- SITES_ROOT=/mnt/sites
- TRAEFIK_SERVICE=traefik-pages@docker
- AUTH_PASSWORD=hunter2
labels :
- traefik.enable=true
這不需要與Traefik相同的文件,但是確實需要使用固定的主機名和IP訪問Traefik。如果Traefik以主機模式運行(就像我一樣),則需要將traefik-pages
綁定到內部界面,然後收聽。
該標籤使Traefik自動配置能夠檢測到traefik-pages
。請注意, $TRAEFIK_SERVICE
必須匹配Traefik創建的服務名稱。
接下來,您需要使用先前配置的端口和密碼為Traefik創建HTTP提供商。
providers :
...
http :
endpoint :
- " http://[email protected]:5000/.traefik-pages/provider "
在這裡,您還可以為traefik-pages
配置輪詢間隔。
現在,只需啟動Traefik和traefik-pages
,他們應該開始為您的網站進行通信和創建路由器。
traefik-pages
的配置完全是通過環境變量完成的:
$SITES_ROOT
:存儲站點的目錄(必需)。
$TRAEFIK_SERVICE
: traefik-pages
的服務名稱,在此路由(要求)。
$AUTH_PASSWORD
:訪問私人URL( /.traefik-pages/*
*)所需的基本auth用戶名(必需)。
$DENY_PREFIXES
:逗號分隔的URL前綴列表要忽略(立即返回404)。默認情況下為空。
$LOG_INTERNAL
:是否要記錄內部URL請求(默認錯誤)。
$TRAEFIK_CERT_RESOLVER
:用於提供TLS證書的Traefik證書解析器(默認情況下,不會要求任何證書)。
$PORT
:要聆聽的端口(默認為5000)。
$WORKERS
:處理請求的工藝數量(默認為1)。
traefik-pages
是用銹編寫的,設計為盡可能快。
Requests per second: 6786.85 [#/sec] (mean)
Time per request: 14.734 [ms] (mean)
Time per request: 0.147 [ms] (mean, across all concurrent requests)
Transfer rate: 1471.37 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 2
Processing: 3 15 5.5 14 51
Waiting: 2 14 5.5 14 51
Total: 3 15 5.5 14 51
Percentage of the requests served within a certain time (ms)
50% 14
66% 16
75% 17
80% 18
90% 21
95% 25
98% 30
99% 35
100% 51 (longest request)
這些測試是在2600倍上進行的,具有單個工作過程。