


So generieren Sie dynamisch eine Konfiguration über nginx+confd in Docker
Wenn wir immer mehr Projekte haben, ist es sehr mühsam und kann schief gehen, manuell zum Server zu gehen, um die Nginx-Konfiguration zu ändern. Durch nginx+confd+配置中心
können wir eine Lösung implementieren, um Fehler zu vermeiden und umständliche Prozesse zu reduzieren.
Gehen Sie zuerst direkt zur Docker-Datei von nginx+confd
FROM nginx:1.21.6 # 拷贝confd二进制可执行文件 https://github.com/kelseyhightower/confd/releases/tag/v0.16.0 COPY ./confd-0.16.0-linux-amd64 /usr/local/bin/confd # 拷贝wait-for脚本 https://github.com/Eficode/wait-for COPY ./wait-for / # 安装nc支持wait-for脚本 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y \ net-tools \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y \ netcat \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # 创建配置文件目录 RUN mkdir -p /etc/confd/conf.d \ # 给可执行权限 && chmod +x /usr/local/bin/confd \ && chmod 777 /wait-for \ # 使用脚本启动多进程 && echo "#!/bin/bash" >> start.sh \ && echo "nohup /usr/local/bin/confd -config-file /etc/confd/conf/confd.toml &" >> start.sh \ && echo "nginx -g 'daemon off;'" >> start.sh \ && chmod 664 ./start.sh CMD ["bash", "start.sh"]
Wenn Sie es nicht selbst generieren möchten, können Sie Folgendes verwenden:
https://hub.docker.com/repository/docker/lablelan/nginx-confd
Docker-compose wird hier verwendet, um die Verwendung von nginx+confd+ zu demonstrieren etcd+etcdkeeper zum grafischen Ändern der Nginx-Konfiguration#🎜🎜 #
version: '2' networks: app-tier: driver: bridge ipam: driver: default config: - subnet: 172.22.0.0/16 services: Etcd: image: 'bitnami/etcd:3.5.2' environment: - ALLOW_NONE_AUTHENTICATION=yes - ETCD_ADVERTISE_CLIENT_URLS=http://etcd:2379 ports: - 2379:2379 - 2380:2380 networks: app-tier: ipv4_address: 172.22.0.2 EtcdKeeper: image: 'deltaprojects/etcdkeeper:latest' - 8000:8080 ipv4_address: 172.22.0.3 Nginx: image: 'lablelan/nginx-confd' command: sh -c '/wait-for Etcd:2379 -- bash start.sh' depends_on: - Etcd volumes: - "./confd.toml:/etc/confd/conf/confd.toml" - "./nginx.tmpl:/etc/confd/templates/nginx.tmpl" - "./myapp-nginx.toml:/etc/confd/conf.d/myapp-nginx.toml" - "./nginx.conf:/etc/nginx/nginx.conf" - "./conf.d:/etc/nginx/conf.d" - 80:80 ipv4_address: 172.22.0.4
# 🎜🎜##🎜 🎜#
Der hier auf Port 8080 ausgeführte Dienst ist ein einfacher Demodienst (nodejs). Wenn Sie ihn benötigen, können Sie ihn von gitee erhalten.
https://gitee.com/lablelan/amis-demo
Vielleicht spiegelt dies nicht die Praktikabilität dieser Lösung wider. Tatsächlich können wir die Serviceerkennungsfunktion realisieren, indem wir die aktuellen Serviceinformationen registrieren etcd im Geschäftscode, damit es dynamisch generiert werden kann. Generieren Sie die Nginx-Konfiguration, um eine manuelle Änderung der Nginx-Konfiguration zu vermeiden und Fehler zu reduzieren.Nach der Konfiguration von etcd können wir sehen, dass der Zugriff auf http://www.lablelan.com/select funktioniert hat erfolgreich zurückgegeben
#🎜🎜 #
Das obige ist der detaillierte Inhalt vonSo generieren Sie dynamisch eine Konfiguration über nginx+confd in Docker. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Wie benutze ich Docker Desktop? Docker Desktop ist ein Werkzeug zum Ausführen von Docker -Containern auf lokalen Maschinen. Zu den zu verwendenden Schritten gehören: 1.. Docker Desktop installieren; 2. Start Docker Desktop; 3.. Erstellen Sie das Docker -Bild (mit Dockerfile); 4. Build Docker Image (mit Docker Build); 5. Docker -Container ausführen (mit Docker Run).

Sie können zur Quelle der Inlandsspiegel wechseln. Die Schritte sind wie folgt: 1. Bearbeiten Sie die Konfigurationsdatei /etc/docker/daemon.json und fügen Sie die Spiegelquellenadresse hinzu; 2. Starten Sie den Docker Service Sudo SystemCtl Docker neu, um die Download -Geschwindigkeit und -stabilität des Bilddownloads zu verbessern.

Um die Docker -Version zu erhalten, können Sie die folgenden Schritte ausführen: Führen Sie den Befehl Docker "Docker --version" aus, um die Client- und Serverversionen anzuzeigen. Für Mac oder Windows können Sie auch Versionsinformationen über die Registerkarte Version der Docker -Desktop -GUI oder das Menü Docker Desktop anzeigen.

Schritte zum Erstellen eines Docker -Images: Schreiben Sie eine Dockerfile, die die Build -Anweisungen enthält. Erstellen Sie das Bild im Terminal mit dem Befehl Docker Build. Markieren Sie das Bild und weisen Sie Namen und Tags mit dem Befehl Docker Tag zu.

Die Schritte zur Aktualisierung eines Docker -Images sind wie folgt: Ziehen Sie das neueste Bild -Tag. Neues Bild Löschen Sie das alte Bild für ein bestimmtes Tag (optional) den Container neu (falls erforderlich) neu starten Sie neu (falls erforderlich).

Sie können den Namen des Docker -Containers abfragen, indem Sie den Schritten folgen: Alle Container auflisten (Docker PS). Filtern Sie die Containerliste (unter Verwendung des GREP -Befehls). Ruft den Containernamen ab (befindet sich in der Spalte "Namen").

Sie können Docker -private Repositorys erstellen, um Containerbilder sicher zu speichern und zu verwalten und strenge Kontrolle und Sicherheit bereitzustellen. Zu den Schritten gehören: Erstellen eines Repositorys, Gewährung von Zugriff, Bereitstellung eines Repositorys, Drückens eines Bildes und Ziehen eines Bildes. Zu den Vorteilen gehören Sicherheit, Versionskontrolle, reduzierter Netzwerkverkehr und Anpassung.

Docker LNMP Container Anrufschritte: Führen Sie den Container aus: Docker Run -d --Name LNMP -Container -P 80:80 -P 443: 443 LNMP -Stack, um den Container IP zu erhalten: Docker Inspecy Lnmp -Container | GREP iPaddress Access Website: http: // & lt; Container IP & gt;/index.phpssh Access: Docker Exec -it lnmp -container Bash Access MySQL: Mysql -U Roo
