Flask Academy · レッスン

NginxとComposeを前段に置く

リバースプロキシを設定し、スタックをオーケストレーションします

レッスン 4/413 ステップ

「NginxとComposeを前段に置く」はCoddyKit上の無料Flask Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはFlask Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Flask Academyコースには全4レッスンが含まれています。

Nginxを追加する理由

Gunicornはアプリを実行しますが、その前段にはリバースプロキシとしてNginxを配置します。Nginxが公開側の複雑な処理を担うため、GunicornはPythonに集中できます。🛡️

リバースプロキシの役割

リバースプロキシは、すべてのクライアントリクエストを最初に受け取り、Gunicornに転送して、レスポンスをクライアントに中継します。

Nginxで静的ファイルを配信する

CSS、JS、画像はNginxから直接配信させましょう。NginxはPythonよりも静的ファイルの配信がはるかに高速です。

TLSもここで処理する

NginxはHTTPSを終端するのに適した場所です。証明書と暗号化をNginxが処理し、Gunicornは内部で通常のHTTPを使用できます。

proxy_passディレクティブ

Nginxの設定で、proxy_passはトラフィックの送信先を指定します。名前とポートを使って、Gunicornコンテナを指定します。

location / {
  proxy_pass http://web:8000;
}

Docker Composeを導入する

Docker Composeを使うと、1つのYAMLファイルから複数のコンテナをまとめて実行できます。アプリコンテナとNginxコンテナの構成に最適です。

Webサービスを定義する

composeでは、Flaskイメージがwebサービスになります。ComposeはDockerfileからそれをビルドし、他のコンテナがアクセスできるよう名前を付けます。

services:
  web:
    build: .

Nginxサービスを追加する

公式イメージを使用し、設定ファイルをマウントするnginxサービスを追加します。このサービスがポートを外部に公開します。

  nginx:
    image: nginx:alpine
    ports:
      - "80:80"

サービス名で通信する

Composeは両方のコンテナを同じネットワークに配置します。Nginxは、サービス名をホストとしてhttp://web:8000にアクセスし、Gunicornと通信します。

起動順序を制御する

depends_onを使うと、Nginxをwebの後に起動できます。準備完了までは待機しませんが、適切な起動順序を設定できます。

    depends_on:
      - web

スタックを起動する

1つのコマンドですべてを起動できます。docker compose upは、両方のサービスを1つの実行中のスタックとしてビルドし、ネットワークに接続して起動します。

docker compose up -d --build

確認問題

Gunicornの前段でNginxは何をしていますか?

まとめ

NginxがGunicornの前段に立ち、Composeが両者を1つのスタックとして構成します。このスタックは1つのコマンドで起動できます。これでFlaskを本番環境にデプロイできます。🎉

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「NginxとComposeを前段に置く」レッスンは無料ですか?

はい。「NginxとComposeを前段に置く」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Flask Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Flask Academyコースには全4レッスンが含まれています。

「NginxとComposeを前段に置く」で何を学びますか?

リバースプロキシを設定し、スタックをオーケストレーションします ブラウザで直接実行するハンズオンコードでFlask Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Flask Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのFlask Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「NginxとComposeを前段に置く」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このFlask Academyレッスンでコードを書いて実行できますか?

はい。すべてのFlask Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 組み込み開発サーバーを使わない理由
  2. GunicornでFlaskを実行する
  3. 本番用Dockerfileを書く
  4. NginxとComposeを前段に置く
← Flask Academyに戻る