


Bagaimana untuk menjana konfigurasi secara dinamik melalui nginx+confd dalam docker
Apabila kami mempunyai lebih banyak projek, pergi ke pelayan secara manual untuk mengubah suai konfigurasi nginx sangat menyusahkan dan mungkin menjadi salah. Kami boleh melaksanakan penyelesaian melalui nginx+confd+配置中心
untuk mengelakkan ralat dan mengurangkan proses yang menyusahkan.
Pertama, muatkan terus fail docker 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"]
Jika anda tidak mahu menjananya sendiri, anda boleh menggunakan:
https:/ /hub.docker.com/repository/docker /lablelan/nginx-confd
Docker-compose digunakan di sini untuk menunjukkan cara menggunakan nginx+confd+etcd+etcdkeeper untuk mengubah suai konfigurasi nginx secara grafik
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
Selepas permulaan, ia akan dibuat melalui etcdkeeper Atau mengemas kini /myapp/services/web/www/1 akan menjana konfigurasi nginx secara dinamik (port 80 forwards port 8080) dan berkuat kuasa secara automatik. IP yang dikonfigurasikan di sini ialah IP intranet dan tidak menggunakan 127.0.0.1, kerana perkhidmatan itu tidak berjalan pada bekas nginx (perhatikan bahawa hos tempatan saya untuk www.lablelan.com ditetapkan kepada 127.0.0.1)
Perkhidmatan yang dijalankan pada port 8080 di sini ialah perkhidmatan demo yang mudah (nodejs Jika anda memerlukannya, anda boleh mendapatkannya dari gitee
https://). gitee.com/lablelan/amis-demo
Selepas mengkonfigurasi etcd, kita dapat melihat bahawa mengakses http://www.lablelan.com/select telah berjaya dikembalikan
Ini mungkin tidak berlaku. Ini tidak menggambarkan kepraktisan penyelesaian ini. Malah, kami boleh merealisasikan fungsi penemuan perkhidmatan dengan mendaftarkan maklumat perkhidmatan semasa ke etcd dalam kod perniagaan, supaya nginx. konfigurasi boleh dijana secara dinamik untuk mengelakkan pengubahsuaian manual konfigurasi nginx dan mengurangkan ralat.
Atas ialah kandungan terperinci Bagaimana untuk menjana konfigurasi secara dinamik melalui nginx+confd dalam docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Anda boleh beralih ke sumber cermin domestik. Langkah -langkah adalah seperti berikut: 1. Edit fail konfigurasi /etc/docker/daemon.json dan tambahkan alamat sumber cermin; 2. Selepas menyimpan dan keluar, mulakan semula perkhidmatan Docker Sudo SystemCtl Docker untuk meningkatkan kelajuan muat turun dan kestabilan imej.

Langkah -langkah untuk membuat imej Docker: Tulis Dockerfile yang mengandungi arahan membina. Bina imej di terminal, menggunakan arahan membina Docker. Tag imej dan tetapkan nama dan tag menggunakan arahan tag docker.

Bagaimana cara menggunakan desktop Docker? Docktop Docktop adalah alat untuk menjalankan bekas Docker pada mesin tempatan. Langkah -langkah untuk digunakan termasuk: 1. Pasang desktop Docker; 2. Mulakan desktop Docker; 3. Buat imej Docker (menggunakan Dockerfile); 4. Membina imej Docker (menggunakan Docker Build); 5. Jalankan bekas Docker (menggunakan Docker Run).

Untuk mendapatkan versi Docker, anda boleh melakukan langkah -langkah berikut: Jalankan arahan Docker "Docker -version" untuk melihat versi klien dan pelayan. Untuk MAC atau Windows, anda juga boleh melihat maklumat versi melalui tab versi Docktop GUI atau menu desktop Docker.

Langkah -langkah untuk mengemas kini imej Docker adalah seperti berikut: Tarik tag imej terkini imej baru memadam imej lama untuk tag tertentu (pilihan) mulakan semula bekas (jika diperlukan)

Kaedah untuk melihat log Docker termasuk: Menggunakan arahan Log Docker, contohnya: Log Docker Container_Name Gunakan arahan docker exec untuk menjalankan /bin /sh dan lihat fail log, contohnya: docker exec -it container_name /bin /sh; Cat /var/log/container_name.log Gunakan arahan log docker-compose compose, contohnya: docker-compose -f docker-com

Untuk menyimpan imej di Docker, anda boleh menggunakan arahan Docker Commit untuk membuat imej baru, yang mengandungi keadaan semasa bekas yang ditentukan, Sintaks: Docker Commit [Options] Nama Imej Container ID. Untuk menyimpan imej ke repositori, anda boleh menggunakan arahan PUSH Docker, Sintaks: Docker Push Nama Imej [: TAG]. Untuk mengimport imej yang disimpan, anda boleh menggunakan arahan tarik docker, sintaks: docker tarik nama imej [: tag].

Anda boleh membina repositori peribadi Docker untuk menyimpan dan menguruskan imej kontena dengan selamat, memberikan kawalan dan keselamatan yang ketat. Langkah -langkah termasuk: mewujudkan repositori, memberikan akses, mengerahkan repositori, menolak imej, dan menarik imej. Kelebihan termasuk keselamatan, kawalan versi, mengurangkan trafik rangkaian dan penyesuaian.
