NginxとComposeを前段に置く
リバースプロキシを設定し、スタックをオーケストレーションします
「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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 組み込み開発サーバーを使わない理由
- GunicornでFlaskを実行する
- 本番用Dockerfileを書く
- NginxとComposeを前段に置く