


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 ?
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Vous pouvez passer à la source de miroir domestique. Les étapes sont les suivantes: 1. Modifiez le fichier de configuration /etc/docker/daemon.json et ajoutez l'adresse source miroir; 2. Après enregistrer et sortir, redémarrez le service Docker Sudo Systemctl Docker pour améliorer la vitesse et la stabilité du téléchargement d'image.

Pour obtenir la version Docker, vous pouvez effectuer les étapes suivantes: exécutez la commande docker "docker --version" pour afficher les versions client et serveur. Pour Mac ou Windows, vous pouvez également afficher les informations de version via l'onglet Version de la GUI de bureau Docker ou du menu de bureau à propos de Docker.

Étapes pour créer une image docker: écrivez un dockerfile qui contient les instructions de construction. Créez l'image dans le terminal, en utilisant la commande docker build. Marquez l'image et attribuez des noms et des balises à l'aide de la commande docker tag.

Les méthodes pour afficher les journaux Docker incluent: à l'aide de la commande docker logs, par exemple: docker logs contener_name Utilisez la commande docker exec pour exécuter / bin / sh et afficher le fichier journal, par exemple: docker exec -it contener_name / bin / sh; Cat /var/log/continer_name.log Utilisez la commande docker-compose JORS de Docker Compose, par exemple: docker-compose -f docker-com

Vous pouvez interroger le nom du conteneur Docker en suivant les étapes: répertorier tous les conteneurs (Docker PS). Filtrez la liste des conteneurs (à l'aide de la commande grep). Obtient le nom du conteneur (situé dans la colonne "Noms").

Comment utiliser Docker Desktop? Docker Desktop est un outil pour exécuter des conteneurs Docker sur les machines locales. Les étapes à utiliser incluent: 1. Installer Docker Desktop; 2. Démarrer Docker Desktop; 3. Créer une image Docker (à l'aide de DockerFile); 4. Build Docker Image (en utilisant Docker Build); 5. Exécuter Docker Container (à l'aide de Docker Run).

Les étapes pour mettre à jour une image Docker sont les suivantes: Tirez la dernière étiquette d'image Nouvelle image Supprimer l'ancienne image pour une balise spécifique (facultative) Redémarrez le conteneur (si nécessaire)

Pour enregistrer l'image dans Docker, vous pouvez utiliser la commande docker commit pour créer une nouvelle image, contenant l'état actuel du conteneur spécifié, Syntaxe: Docker Commit [Options] Nom d'image de l'ID de conteneur. Pour enregistrer l'image dans le référentiel, vous pouvez utiliser la commande docker push, Syntax: Docker Push Image Name [: Tag]. Pour importer des images enregistrées, vous pouvez utiliser la commande docker pull, syntaxe: docker pull name [: tag].
