を入手してtraefik


使用中Traefik Dockerコンテナで実行しているサービスを発行し、セキュリティー保護するリバースプロキシとして.このブログ記事はTraefik 2を使用して始める方法を説明しますdocker-compose 単一のホストで.
私はさまざまなホスト上の多くのtraefikインスタンスを使用しているので、私はtraefik-dockerized 展開を容易にする.
まず、リポジトリをクローンします.
$ git clone https://github.com/cedrichopf/traefik-dockerized.git
Cloning into 'traefik-dockerized'...
$ cd traefik-dockerized
リポジトリをクローンした後、例の設定のコピーを作成します.
$ cp config/traefik.example.yml config/traefik.yml
設定ファイルを開きます.次のようになります.
api:
  dashboard: true

entryPoints:
  http:
    address: ":80"
  https:
    address: ":443"

providers:
  docker:
    network: proxy

certificatesResolvers:
  letsencrypt:
    acme:
      email: [email protected]
      storage: acme.json
      httpChallenge:
        entryPoint: http
設定ファイルはほぼ使用可能です.組み込みのLetsEncryptサポートを使用するには、証明書リゾルバのメールアドレスを入力します.
その後、traefikで構成されたDockerネットワークを作成します.YMLファイル.
$ docker network create proxy
ca0a9fe39b34b9f17d5c5e938e82ce67b4423e151ae5000eee7754e89116cac1
さらに、証明書リゾルバによって受け取られた証明書情報を保存するJSONファイルを作成します.
$ touch letsencrypt/acme.json
$ chmod 600 letsencrypt/acme.json
その医者は構成する.YMLファイルは、すべてのTraefik展開のリポジトリとジェネリックの一部です.Dockerを作成します.オーバーライドします.展開にカスタム構成を適用するYMLファイル.
$ cp override.example.yml docker-compose.override.yml
最後に、ドッカー画像をプルし、traefikインスタンスを起動します.
$ docker-compose pull
Pulling traefik ... done
$ docker-compose up -d
Creating traefik_traefik_1 ... done

サービスの例


現在、traefikセットアップはDocker構成を使用してサンプルサービスを展開することによってテストできます.次の例では、Traefikサービス構成を持つNGNXコンテナを「ラベル」セクションに配備します.
注意:この例を使用するには、ホスト名を変更する必要がありますexample.com システムの環境に合わせてください.あなたがサービスを発見するためにtraefikによって使われるDockerネットワークを変えたならば、あなたはネットワークを変える必要もあります.
version: "3.7"

services:
  nginx:
    image: nginx:latest
    networks:
      - proxy
    labels:
      # Traefik configuration, Hostname needs to be changed
      - traefik.http.routers.nginx-http.rule=Host(`example.com`)
      - traefik.http.routers.nginx-http.entrypoints=http
      - traefik.http.routers.nginx-http.middlewares=redirect
      - traefik.http.routers.nginx-https.rule=Host(`example.com`)
      - traefik.http.routers.nginx-https.entrypoints=https
      - traefik.http.routers.nginx-https.tls=true
      - traefik.http.routers.nginx-https.tls.certresolver=letsencrypt
      - traefik.http.services.nginx.loadbalancer.server.port=80
      - traefik.http.middlewares.redirect.redirectscheme.scheme=https

networks:
  proxy:
    external: true
マニフェストで見られるように、Traefikはラベルセクションで定義されたプロパティを使用してサービスへのアクセスを構成します.この例では、2つのルータ(HTTPとHTTPS)を作成しています.そして、ポート80のNGinxサービスに要求を進めます.さらに、HTTPルータはHTTPからHTTPSへのすべての要求をリダイレクトするリダイレクトミドルウェアを使用しています.接続を確保するには、LetsEncrypt証明書リゾルバを使用して証明書を提供します.
この例を配備するには、次のコマンドを実行します
$ docker-compose up -d
Creating example-service_nginx_1 ... done
最後に、設定したルートでブラウザを開き、nginxのウェルカムページを参照してください.