Wie verwende ich den Nginx-Proxyserver in Docker, um eine horizontale Erweiterung von Webdiensten zu erreichen?

WBOY
Freigeben: 2023-09-05 13:32:01
Original
1099 Leute haben es durchsucht

Wie verwende ich den Nginx-Proxyserver in Docker, um eine horizontale Erweiterung von Webdiensten zu erreichen?

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

  1. Nginx-Proxyserver:
    Nginx ist ein leistungsstarker HTTP- und Reverse-Proxyserver. Es ist in der Lage, eine große Anzahl gleichzeitiger Verbindungen zu verarbeiten und hat einen geringen Speicherverbrauch. Nginx ist in der Lage, eine horizontale Skalierung von Diensten zu erreichen, indem es Anfragen an mehrere Backend-Server sendet und diese gemäß einem Lastausgleichsalgorithmus verteilt.
  2. Docker-Container:
    Docker ist eine leichtgewichtige Virtualisierungstechnologie, die eine schnelle Bereitstellung und Portabilität ermöglicht, indem sie Anwendungen und ihre Abhängigkeiten in Container verpackt. Jeder Container läuft unabhängig und kann auf jedem Docker-fähigen Host bereitgestellt werden.

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'
Nach dem Login kopieren

if name == '__main__':

app.run(debug=True, host='0.0.0.0')
Nach dem Login kopieren
Nach dem Login kopieren

// backend_service_2.py
from flask import Flask

app = Flask(__name__)

@app.route( '/')
def hello_world():

return 'Hello from Backend Service 2'
Nach dem Login kopieren

if name == '__main__':

app.run(debug=True, host='0.0.0.0')
Nach dem Login kopieren
Nach dem Login kopieren

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
Nach dem Login kopieren

backend_service_1:

build:
  context: ./backend_service_1
  dockerfile: Dockerfile
Nach dem Login kopieren

backend_service_2:

build:
  context: ./backend_service_2
  dockerfile: Dockerfile
Nach dem Login kopieren

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;
Nach dem Login kopieren

}

http {

upstream backend {
    server backend_service_1:5000;
    server backend_service_2:5000;
}

server {
    listen 80;

    location / {
        proxy_pass http://backend;
    }
}
Nach dem Login kopieren

}

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage