Webサイトホスティングサーバー(GitHubページを考えてください)は、ルーティングとTLS終了のためにTraefikと深く統合するように設計されています。
進行中の作業
ディレクトリのディレクトリを作成します。各ディレクトリの名前は、提供するサイトのホスト名であり、内部にコンテンツがあります。
/mnt/sites
├── example.com
│ └── index.html
└── othersite.example.com
└── index.html
ファイルがどのように到達するかはあなた次第です。ミニオ、 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 Autoconfigurationが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/*
*)へのアクセスに必要な基本的な認証ユーザー名(必須)。
$DENY_PREFIXES
:無視するURLプレフィックスのコンマ分離リスト(すぐに404を返します)。デフォルトで空です。
$LOG_INTERNAL
:内部URLのリクエストをログするかどうか(デフォルトのFalse)。
$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倍で実行されました。