習慣沉默2017-06-20 10:07:52
折り畳まれ、docker の解決策に到達しました
github:https://github.com/JrCs/docke...
重要な注目部分抜粋
nginx プロキシは、jwilder/docker-gen
イメージと公式 nginx イメージを使用して 2 つの別個のコンテナーとして実行することもできます。
これを行うと、Docker ソケットが公開コンテナー サービスにバインドされるのを防ぐことができます (nginx 公開コンテナーに Docker ソケットをマウントしないようにします)。セキュリティの観点からはその方が優れています
nginx プロキシを別のコンテナとして実行するには、次のものが必要です:
1) テンプレート ファイル nginx.tmpl を docker-gen コンテナにマウントします。次のようなコマンドで最新の公式 nginx.tmpl を取得できます:
リーリー2) NGINX_DOCKER_GEN_CONTAINER
環境変数を docker-gen コンテナーの名前または ID に設定します。
例:
まず、ボリュームを指定して nginx (公式イメージ) を起動します:
次に、共有ボリュームとテンプレート ファイルを使用して docker-gen コンテナを起動します:
次に、このコンテナを開始します (NGINX_DOCKER_GEN_CONTAINER 変数には docker-gen コンテナ名または ID が含まれている必要があります):
その後、前述のようにプロキシされるコンテナを起動します。
何らかの理由で docker --volumes-from オプションを使用できない場合は、NGINX_PROXY_CONTAINER
変数を使用して nginx コンテナの名前または ID を指定できます。
Let's Encrypt サービスを使用して仮想ホストの有効な証明書を自動的に作成するには。
プロキシされるコンテナに対する Let's Encrypt のサポートを有効にするには、次の環境変数を設定します。この環境変数は、プロキシされる各アプリケーション コンテナーで宣言する必要があります。
LETSENCRYPT_HOST
LETSENCRYPT_EMAIL
LETSENCRYPT_HOST
variable most likely needs to be the same as the VIRTUAL_HOST
変数は、VIRTUAL_HOST
変数と同じである必要があり、パブリックにアクセス可能なドメインである必要があります。複数のホストをカンマ区切りで指定します。
次の環境変数はオプションであり、Let's Encrypt クライアントの動作方法をパラメータ化します。
LETSENCRYPT_KEYSIZE
LETSENCRYPT_KEYSIZE
変数は、要求されたキーのサイズを決定します (ビット単位、デフォルトは 4096)。
環境変数の最初のドメインとしてベース ドメインを追加します。LETSENCRYPT_HOST
5 証明書/週/ドメイン制限を持たないテスト証明書を作成する場合は、LETSENCRYPT_TEST
environment variable with a value of true
(LETSENCRYPT_HOST で証明書を要求するコンテナ内) を定義します。これをすべてのコンテナに対してグローバルに実行する場合は、以下で説明するように ACME_CA_URI を設定します。
例:
letsencrypt は、5 証明書/週/ドメインの制限がないテスト サーバーを使用します。コンテナごとにテスト証明書を作成することもできます (「テスト証明書を暗号化しましょう」を参照)ACME_CA_URI
- Directory URI for the CA ACME API endpoint (default: https://acme-v01.api.letsencrypt.org/directory
). If you set it's value to https://acme-staging.api.letsencrypt.org/directory
リーリー
エントリポイント スクリプトのデバッグと LetsEncrypt 証明書の生成を有効にし、構成の問題を正確に特定するのに役立ちます。DEBUG
- Set it to true
- 他の CA の ACME 実装をサポートするために、代替 TOS ハッシュを simp_le に渡しましょう。ACME_TOS_HASH
大家讲道理2017-06-20 10:07:52
コンテナはホストのポートに直接バインドすることしかできないため、たとえば、Webコンテナが10個ある場合、これらのコンテナはすべて80または443を必要とするため、-pパラメータは現実的ではないため、コンテナをゲートウェイリバースとして使用しますプロキシ コンテナ、nginx を使用、-p に nginx コンテナ、および php-fpm やノードなどの他の Web コンテナからリバース プロキシとして nginx 経由でアクセスすることもでき、証明書は nginx サーバーに直接渡され、443 転送が実現されます。
実はこれらは基本的なものですが、docker とは何の関係もありません
この記事は lnmp 環境、
/a/11...
複数のphp-fpm、node、またはpythonバックエンドサービスがある場合、nginxは次のようになります
リーリー