ホームページ >バックエンド開発 >PHPチュートリアル >Docker で Nginx プロキシ サーバーを使用して Web サービスのブレークポイント再開を実装するにはどうすればよいですか?

Docker で Nginx プロキシ サーバーを使用して Web サービスのブレークポイント再開を実装するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-09-05 15:52:521075ブラウズ

Docker で Nginx プロキシ サーバーを使用して Web サービスのブレークポイント再開を実装するにはどうすればよいですか?

Docker で Nginx プロキシ サーバーを使用して Web サービスのブレークポイント再開を実装するにはどうすればよいですか?

現代のインターネット アプリケーションでは、再開可能なダウンロードは非常に重要な機能です。これにより、ネットワークが中断されたり、その他の理由で送信が中断された場合でも、ユーザーは大きなファイルをアップロードまたはダウンロードできます。送信は引き続き続行できます。ユーザーエクスペリエンスの向上。この記事では、Docker と Nginx プロキシ サーバーを使用して Web サービスのブレークポイント再開を実装する方法を紹介します。

まず、ファイルのアップロードおよびダウンロード機能を提供する簡単な Web サービスを作成する必要があります。以下は、Python Flask フレームワークを使用して作成されたサンプル コードです。

from flask import Flask, request, send_from_directory

app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = '/uploads'

@app.route('/upload', methods=['POST'])
def upload():
    f = request.files['file']
    f.save(os.path.join(app.config['UPLOAD_FOLDER'], f.filename))
    return 'File uploaded successfully'

@app.route('/download/<filename>', methods=['GET'])
def download(filename):
    return send_from_directory(app.config['UPLOAD_FOLDER'], filename)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

次に、Docker を使用して、この Web サービスを実行するコンテナを作成する必要があります。まず、コンテナ イメージを定義するために Dockerfile を作成する必要があります。簡略化された Dockerfile の例を次に示します。

FROM python:3.7

WORKDIR /app

COPY requirements.txt .

RUN pip install --no-cache-dir -r requirements.txt

COPY . .

EXPOSE 5000

CMD ["python", "app.py"]

同じディレクトリにrequirements.txtファイルを作成し、次の内容を追加します。

Flask

次に、次のコマンドを使用してDockerイメージを構築します。

docker build -t web-service .

構築が完了したら、次のコマンドを使用してコンテナを実行できます。

docker run -p 5000:5000 -v /path/to/uploads:/uploads --name web-service-container web-service

上記のコマンドでは、ホストの /uploads フォルダーを次の /uploads フォルダーにマウントします。コンテナ。アップロードされたファイルを保存するために使用されます。

これで、Docker で単純な Web サービスを正常に実行できました。次に、Nginx プロキシ サーバーを使用して、ブレークポイント再開機能を実装します。

まず、Nginx 構成ファイルを変更する必要があります。 Nginx の設定ファイルに次の行を追加します。

server {
    listen 80;
    server_name your_domain.com;

    location / {
        proxy_pass http://web-service-container:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        client_max_body_size 0;
        proxy_request_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
    }
}

上記の設定では、Docker コンテナの Web サービスへのリクエストをプロキシするように Nginx を設定しました。 your_domain.com を独自のドメイン名または IP アドレスに置き換えることに注意してください。

次に、コンテナ内で Nginx プロキシ サーバーを実行するために、Docker-compose ファイルを更新する必要があります。同じディレクトリに docker-compose.yml ファイルを作成し、次の内容を追加します:

version: '3'

services:
  web-service:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - /path/to/uploads:/uploads

  nginx:
    image: nginx:latest
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
    ports:
      - 80:80
    depends_on:
      - web-service

上記の構成では、nginx という名前のサービスを追加し、Nginx 構成ファイルをコンテナーにマウントしました。

次に、次のコマンドを使用して、この Docker の組み合わせを開始します。

docker-compose up

これまでのところ、Docker で Nginx プロキシ サーバーを使用して、Web サービスのブレークポイント再開機能を実装することに成功しました。大容量ファイルのアップロードテストを通じて、レジューム機能が正しく動作するかどうかを確認します。

概要:

この記事では、Docker と Nginx プロキシ サーバーを使用して、Web サービスのブレークポイント再開機能を実装する方法を紹介します。これを行うには、単純な Web サービスを作成し、Docker コンテナを使用してそれを実行します。次に、Docker コンテナ内の Web サービスにリクエストを転送するように Nginx プロキシ サーバーを構成しました。このようにして、信頼性の高いファイルのアップロードおよびダウンロード機能を実現し、ユーザー エクスペリエンスを向上させました。

以上がDocker で Nginx プロキシ サーバーを使用して Web サービスのブレークポイント再開を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。