Wie verwende ich den Nginx-Proxyserver in Docker, um eine horizontale Erweiterung von Webdiensten zu erreichen?
Einleitung:
Bei der Entwicklung des heutigen Internets stehen hohe Verfügbarkeit und hohe Effizienz im Mittelpunkt jedes Webdienstes. Um zuverlässige Dienste bereitzustellen und horizontale Skalierbarkeit zu erreichen, verwenden wir normalerweise Proxyserver für den Lastausgleich bei Anfragen. Als leichte und tragbare Containertechnologie kann Docker den Bereitstellungsprozess bei der Implementierung von Proxyservern vereinfachen. In diesem Artikel wird erläutert, wie Sie den Nginx-Proxyserver in Docker verwenden, um eine horizontale Erweiterung von Webdiensten zu erreichen.
Teil Eins: Theoretische Einführung
Teil Zwei: Praktische Komplettlösung
Hier sind die Schritte zum Implementieren der horizontalen Skalierung von Webdiensten mithilfe des Nginx-Proxyservers in Docker:
Schritt 1: Docker und Docker Compose installieren
Zuerst müssen wir Docker und Docker auf dem installieren Gastgeber Compose. Informationen zu bestimmten Installationsmethoden finden Sie in der offiziellen Dokumentation.
Schritt 2: Backend-Dienste erstellen
In diesem Beispiel verwenden wir zwei einfache Backend-Dienste, um das tatsächliche Szenario zu simulieren. Erstellen Sie zwei Ordner, um den Code des Backend-Dienstes zu speichern, und schreiben Sie ein einfaches Python-Dienstskript wie folgt:
// backend_service_1.py
from flask import Flask
app = Flask(__name__)
@app.route(' /')
def hello_world():
return 'Hello from Backend Service 1'
if name == '__main__':
app.run(debug=True, host='0.0.0.0')
// backend_service_2.py
from flask import Flask
app = Flask(__name__)
@app.route( '/')
def hello_world():
return 'Hello from Backend Service 2'
if name == '__main__':
app.run(debug=True, host='0.0.0.0')
Schritt 3: Einen Docker-Container erstellen
Bevor wir einen Docker-Container erstellen, müssen wir eine Docker-Datei schreiben, die zum Erstellen des Containers verwendet wird Bilder. Erstellen Sie eine Datei mit dem Namen „Dockerfile“ in dem Ordner, in dem der Backend-Dienstcode gespeichert ist, und fügen Sie den folgenden Inhalt hinzu:
FROM python:3
WORKDIR /app
COPY require.txt .
RUN pip install – no- Cache-Dir -r Anforderungen.txt
COPY .
CMD [ "python", "./backend_service_1.py" ]
Erstellen Sie im selben Ordner eine Datei mit dem Namen „requirements.txt“ und fügen Sie Folgendes hinzu Inhalt:
flask==1.1.2
Wiederholen Sie die obigen Schritte, um einen Docker-Container für Backend-Dienst 2 zu erstellen. Ändern Sie einfach den CMD-Befehl in der Docker-Datei in:
CMD [ "python", "./backend_service_2.py" ]
Schritt 4: Nginx-Proxy-Server-Container erstellen
Erstellen Sie auf dem Host einen Container mit dem Namen „docker-compose. yml“. "-Datei und fügen Sie den folgenden Inhalt hinzu:
version: '3'
services:
nginx:
image: nginx:stable-alpine ports: - 80:80 volumes: - ./nginx.conf:/etc/nginx/nginx.conf depends_on: - backend_service_1 - backend_service_2
backend_service_1:
build: context: ./backend_service_1 dockerfile: Dockerfile
backend_service_2:
build: context: ./backend_service_2 dockerfile: Dockerfile
Als nächstes erstellen Sie eine Datei mit dem Namen „nginx im selben Verzeichnis .conf“. und fügen Sie den folgenden Inhalt hinzu:
worker_processes 1;
events {
worker_connections 1024;
}
http {
upstream backend { server backend_service_1:5000; server backend_service_2:5000; } server { listen 80; location / { proxy_pass http://backend; } }
}
Schritt 5: Starten Sie den Container.
Öffnen Sie ein Terminal und navigieren Sie dann zu dem Verzeichnis, das die oben genannten Dateien enthält Führen Sie den folgenden Befehl aus:
$ docker-compose up
Dadurch werden der Nginx-Proxyserver sowie die beiden Backend-Dienstcontainer gestartet.
Teil drei: Testen
Jetzt können wir testen, ob der Nginx-Proxyserver ordnungsgemäß funktioniert, indem wir http://localhost besuchen. Jedes Mal, wenn Sie die Seite aktualisieren, wechseln Sie zwischen den beiden Backend-Diensten, um Antworten zu erhalten.
Teil 4: Fazit
Durch die Verwendung des Nginx-Proxyservers in Docker können wir eine horizontale Erweiterung von Webdiensten erreichen. Dieser Ansatz vereinfacht nicht nur den Bereitstellungsprozess, sondern bietet auch eine hochverfügbare und effiziente Lösung. Ich hoffe, dieser Artikel hilft Ihnen zu verstehen, wie Sie den Nginx-Proxyserver in Docker verwenden, um eine horizontale Erweiterung von Webdiensten zu erreichen.
Das obige ist der detaillierte Inhalt vonWie verwende ich den Nginx-Proxyserver in Docker, um eine horizontale Erweiterung von Webdiensten zu erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!