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 サイトの他の関連記事を参照してください。