Maison >développement back-end >tutoriel php >Comment utiliser le serveur proxy Nginx dans Docker pour implémenter la reprise des points d'arrêt des services Web ?

Comment utiliser le serveur proxy Nginx dans Docker pour implémenter la reprise des points d'arrêt des services Web ?

WBOY
WBOYoriginal
2023-09-05 15:52:521075parcourir

Comment utiliser le serveur proxy Nginx dans Docker pour implémenter la reprise des points darrêt des services Web ?

Comment utiliser le serveur proxy Nginx dans Docker pour implémenter la reprise des points d'arrêt des services Web ?

Dans les applications Internet modernes, la reprise du transfert est une fonction très importante. Elle permet aux utilisateurs de continuer le transfert lors du téléchargement ou du téléchargement de fichiers volumineux, même si le réseau est interrompu ou si le transfert est interrompu pour d'autres raisons, améliorant ainsi l'expérience utilisateur. Dans cet article, nous présenterons comment utiliser le serveur proxy Docker et Nginx pour implémenter la reprise des points d'arrêt des services Web.

Tout d'abord, nous devons créer un service Web simple pour fournir des fonctions de téléchargement et de téléchargement de fichiers. Voici un exemple de code créé à l'aide du framework 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)

Ensuite, nous devons utiliser Docker pour créer un conteneur pour exécuter ce service Web. Tout d’abord, nous devons créer un Dockerfile pour définir notre image de conteneur. Voici un exemple Dockerfile simplifié :

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"]

Créez un fichier exigences.txt dans le même répertoire et ajoutez le contenu suivant :

Flask

Ensuite, utilisez la commande suivante pour créer l'image Docker :

docker build -t web-service .

Une fois la construction terminée, vous pouvez utiliser La commande suivante est utilisée pour exécuter le conteneur :

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

Dans la commande ci-dessus, nous montons le dossier /uploads de l'hôte dans le dossier /uploads du conteneur pour enregistrer les fichiers téléchargés.

Maintenant, nous avons exécuté avec succès un service Web simple dans Docker. Ensuite, nous utiliserons le serveur proxy Nginx pour implémenter la fonction de reprise du point d'arrêt.

Tout d'abord, nous devons modifier le fichier de configuration Nginx. Dans le fichier de configuration de Nginx, ajoutez ce qui suit :

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 "";
    }
}

Dans la configuration ci-dessus, nous avons configuré Nginx pour envoyer par proxy les requêtes au service Web du conteneur Docker. Notez que vous remplacez votre_domaine.com par votre propre nom de domaine ou adresse IP.

Ensuite, nous devons mettre à jour le fichier Docker-compose pour exécuter le serveur proxy Nginx dans le conteneur. Créez un fichier docker-compose.yml dans le même répertoire et ajoutez le contenu suivant :

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

Dans la configuration ci-dessus, nous avons ajouté un service nommé nginx et monté le fichier de configuration Nginx dans le conteneur.

Maintenant, utilisez la commande suivante pour démarrer cette combinaison Docker :

docker-compose up

À ce stade, nous avons utilisé avec succès le serveur proxy Nginx dans Docker pour implémenter la fonction de reprise du point d'arrêt du service Web. Grâce au test de téléchargement de fichiers volumineux, nous pouvons vérifier si la fonction de reprise fonctionne correctement.

Résumé :

Cet article explique comment utiliser Docker et le serveur proxy Nginx pour implémenter la fonction de reprise du point d'arrêt des services Web. Nous faisons cela en créant un service Web simple et en l'exécutant à l'aide d'un conteneur Docker. Nous avons ensuite configuré le serveur proxy Nginx pour transmettre les requêtes au service Web dans le conteneur Docker. De cette manière, nous avons obtenu une fonctionnalité fiable de téléchargement et de téléchargement de fichiers et une expérience utilisateur améliorée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn