コンテンツにスキップ

Traefikリバースプロキシ

Traefikは、マイクロサービスのデプロイを容易にする最新のリバースプロキシおよびロードバランサープロキシです。 Traefikは既存のインフラストラクチャのコンポーネント(Docker、Swarmモード、Kubernetes、Marathon、Consul、Etcd、Rancher、Amazon ECSなど)と統合され、自動的かつ動的に構成されます。オーケストレータでTraefikを狙うことが、必要な唯一の設定手順です。この構成はA +です。 SSLlabsで設定をテストしてください。

docker-compose.yml、bringfik.toml、acme.jsonを同じディレクトリに作成します または、ボリュームセクションでルートを変更します。

<figcaption class=Traefikリバースプロキシ"幅=" 832 "高さ=" 451 "/>Traefikリバースプロキシ

Traefikの基本認証保護を有効にするか、そのダッシュボードを無効にしてください。それ以外の場合、ダッシュボードはインターネットからアクセスできます。

$ sudo apt install apache2-utils$ echo $(htpasswd -nb username mystrongpassword)| sed -en / \ N$ / N-$ / g

このコマンドは、YMLファイルパスワード内のすべての$を自動的にエスケープします。環境ファイルが使用されている場合、シェルによって解釈されないため、$をエスケープする必要はありません。

docker-compose.yml

バージョン:$00273.5$0027サービス:bringfik:container_name:image bringfik:bringfikネットワーク:v1.7:-ポートbringfik:-80:80-443:443ボリューム:-/var/run/docker.sock:/var/run/docker .sock-./traefik.toml:/traefik.toml-./acme.json:/acme.jsonタグ:bringfik.enable: "true" bringfik.backend:bringfik bringfik.docker.network:bringfik bringfik.port:8080 bringfik.frontend.rule:ホスト:bringfik.example.com、bringfik.frontend.entryPoints:https bringfik.frontend.passHostHeader: "true" bringfik.frontend.headers.SSLForceHost: "true" bringfik.frontend.headers.SSLHost:bringfik .example.com bringfik.frontend.headers.SSLRedirect: "true" bringfik.frontend.headers.browserXSSFilter: "true" bringfik.frontend.headers.contentTypeNosniff: "true" bringfik.frontend.headers.forceSTSHeader: "true" bringfik frontend.headers.STSSeconds:315360000 headers.del.frontend.traefik.STSIncludeSubdomains: "true" bringfik.frontend.headers.STSPreload: "true" bringfik.frontend.headers.customResponseHeaders:X-Robots-Tag:n oindex、nofollow、nosnippet、noarchive、notranslate、noimageindex bringfik.frontend.headers.frameDeny: "true" bringfik.frontend.headers.customFrameOptionsValue:$0027allow-from https://example.com$0027 restart: / jellyfin container_name:jellyfin network_mode: "host" volumes:-/ path / to / config:/ config-/ path / to / cache:/ cache-/ path / to / media:/ media restart:unless-stoppednetworks:bringfik:名前:bringfik

このTOMLファイルは環境変数をサポートできないため、変数を使用しないでください。

警告する

Traefikのバグのため、network_mode = hostの場合、コンテナーを動的にルーティングできないため、bringfik.tomlにdockerホスト(172.17.0.1:8096)への静的ルートを作成しました。マルチキャストネットワークをサポートしているため、DLNAまたはHdHomeRunを使用するには、ホストネットワーク(またはmacvlan)の使用が必要です。

bringfik.toml

logLevel = "WARN" defaultInputpoints = ["http"、 "https"] [entryPoints] [entryPoints.http] address = ":80" [entryPoints.http.redirect] entryPoint = "https" [entryPoints.https] address = ":443" [entryPoints.https。 TLS]するminVersion = "VersionTLS12" 暗号スイート= [ "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384" "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305" "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305" "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256" "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"] [リトライ] [API] [ACME ] acmeLogging = trueemail = "user@example.com" storage = "acme.json" entryPoint = "https" [acme.dnsChallenge] provider = "provider" delayBeforeCheck = "60" [[acme.domains]] main = "* .example.com "[docker] domain =" example.com "network =" bringfik "exposedbydefault = false [ファイル] [バックエンド] [バックエンド。 backend-jellyfin] [backends.backend-jellyfin.servidores] [backends.backend-jellyfin.servidores.servidor-1] url = "http://172.17.0.1:8096""frontends] [frontends.jellyfin] backend =" backend-jellyfin "passHostHeader = true [frontends.jellyfin.rutas] [frontends.jellyfin.rutas.route-jellyfin-ext] rule =" Host:jellyfin.example.com "[frontends.jellyfin.headers] SSLRedirect = true SSLHost = "jellyfin.example.com" SSLForceHost = true STSSeconds = 315360000 STSIncludeSubdomains = true STSPreload = true forceSTSHeader = true frameDeny = true contentTypeNosniff = true browserXSSFilter = true customResponseHeaders = "X-Robots-Tag、noindex、noindex、noindex、 noimageindex "customFrameOptionsValue =" allow-from https://example.com "

最後に、証明書を処理する空のacme.jsonファイルを作成します。

$ touch acme.json $ chmod 600 acme.json
警告する

example.comをドメイン名に変更し、メールアドレスでacme.jsonファイルを更新します。 Let$0027s Encryptは有効なメールを必要としませんが、example.comはfalseとしてマークされます。

TraefikおよびJellyfinサービスを開始します。

$ docker-compose -d

おめでとうございます。TraefikとJellyfinのスタックが実行されています!

前に構成ファイルで使用したドメインに移動すると、JellyfinサーバーがHTTPS(AES 256)をアクティブにして実行されます。