最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker中通過nginx+confd動態(tài)生成配置的解決方案

 更新時(shí)間:2022年03月06日 08:46:08   作者:lable  
這篇文章主要介紹了docker:nginx+confd動態(tài)生成配置,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

當(dāng)我們項(xiàng)目越來越多時(shí)手動去服務(wù)器修改nginx配置是一件很麻煩而且可能出錯(cuò)的事情。我們可以通過nginx+confd+配置中心實(shí)現(xiàn)一套方案避免出錯(cuò)并減少繁瑣的流程。

首先直接上nginx+confd的dockerfile

FROM nginx:1.21.6
# 拷貝confd二進(jìn)制可執(zhí)行文件 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/*
# 創(chuàng)建配置文件目錄
RUN mkdir -p /etc/confd/conf.d \
# 給可執(zhí)行權(quán)限
&& chmod +x /usr/local/bin/confd \
&& chmod 777 /wait-for \
# 使用腳本啟動多進(jìn)程
&& 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"]

如果不想自己生成可以用:

https://hub.docker.com/repository/docker/lablelan/nginx-confd

這里使用docker-compose來演示如何使用nginx+confd+etcd+etcdkeeper通過圖形化修改nginx配置

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

啟動后當(dāng)通過etcdkeeper創(chuàng)建或更新/myapp/services/web/www/1會動態(tài)生成nginx配置(80端口轉(zhuǎn)發(fā)8080端口)并自動生效。這里ip配置的是內(nèi)網(wǎng)ip不使用127.0.0.1,因?yàn)榉?wù)并不跑在nginx容器上(注意www.lablelan.com我本地hosts設(shè)置成了127.0.0.1)

這里端口8080跑的服務(wù)是一個(gè)簡單的demo服務(wù)(nodejs),需要的可以從gitee獲取

https://gitee.com/lablelan/amis-demo

配置完etcd后我們可以看到訪問http://www.lablelan.com/select已經(jīng)成功返回了

可能這樣并不能體現(xiàn)出這個(gè)方案的實(shí)用性,其實(shí)我們可以通過在業(yè)務(wù)代碼通過將當(dāng)前服務(wù)信息注冊到etcd實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)功能,這樣就可以動態(tài)地生成nginx配置從而避免手動修改nginx配置減少出錯(cuò)。

到此這篇關(guān)于docker中通過nginx+confd動態(tài)生成配置的流程解析的文章就介紹到這了,更多相關(guān)docker動態(tài)生成配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker 安裝 Rabbitmq的基本步驟

    docker 安裝 Rabbitmq的基本步驟

    在平常的開發(fā)工作中,我們經(jīng)常會使用到 rabbitmq,rabbitmq 主要可以進(jìn)行應(yīng)用解耦、異步通信、流量削峰、負(fù)載均衡、消息持久化、死信隊(duì)列等,這篇文章給大家介紹docker 安裝 Rabbitmq的基本步驟,感興趣的朋友一起看看吧
    2025-04-04
  • Docker運(yùn)行Web服務(wù)實(shí)戰(zhàn)之Tomcat的詳細(xì)過程

    Docker運(yùn)行Web服務(wù)實(shí)戰(zhàn)之Tomcat的詳細(xì)過程

    Tomcat是由Apache軟件基金會下屬的Jakarta項(xiàng)目開發(fā)的一個(gè)Servlet容器,按照Sun Microsystems提供的技術(shù)規(guī)范,實(shí)現(xiàn)了對Servlet和Java Server Page(JSP)的支持,這篇文章主要介紹了Docker運(yùn)行Web服務(wù)實(shí)戰(zhàn)之Tomcat的詳細(xì)過程,需要的朋友可以參考下
    2022-08-08
  • docker cp 拷貝文件 和 進(jìn)入容器的操作

    docker cp 拷貝文件 和 進(jìn)入容器的操作

    這篇文章主要介紹了docker cp 拷貝文件 和 進(jìn)入容器的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • k3s?通過docker部署?Kubernetes的方法步驟

    k3s?通過docker部署?Kubernetes的方法步驟

    本文主要介紹了k3s?通過docker部署?Kubernetes的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • docker常用命令操作方法

    docker常用命令操作方法

    最近幾天都在研究docker,今天給大家分享docker一些常用的命令,需要的朋友可以參考下
    2017-11-11
  • docker安裝部署zabbix的全過程

    docker安裝部署zabbix的全過程

    zabbix由2部分構(gòu)成,zabbix?server與可選組件zabbix?agent,要想搭建一個(gè)Zabbix的工作環(huán)境,主要有三個(gè)方面(界面、服務(wù)器和數(shù)據(jù)庫)可以安裝在同一臺服務(wù)器上,也可以不在同一個(gè)服務(wù)器,本次使用Docker開源的應(yīng)用容器來快速搭建zabbix,需要的朋友可以參考下
    2024-03-03
  • dockerfile的使用及使用dockerfile部署springboot項(xiàng)目的過程

    dockerfile的使用及使用dockerfile部署springboot項(xiàng)目的過程

    Dockerfile是用來構(gòu)建Docker鏡像的文本文件,是由一條條構(gòu)建鏡像所需的指令和參數(shù)構(gòu)成的腳本,這篇文章主要介紹了dockerfile的使用,使用dockerfile部署springboot項(xiàng)目,需要的朋友可以參考下
    2023-04-04
  • 使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    本文主要介紹了使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • docker容器數(shù)據(jù)卷之具名掛載和匿名掛載問題

    docker容器數(shù)據(jù)卷之具名掛載和匿名掛載問題

    容器數(shù)據(jù)卷就是目錄的掛載,將我們的容器的目錄掛載到宿主機(jī)上,從而實(shí)現(xiàn)打通宿主機(jī)和容器之間的文件共享功能,這篇文章主要介紹了docker容器數(shù)據(jù)卷 - 具名掛載和匿名掛載問題,需要的朋友可以參考下
    2021-11-11
  • PIP安裝docker-compose超時(shí)問題解決方案

    PIP安裝docker-compose超時(shí)問題解決方案

    這篇文章主要介紹了PIP安裝docker-compose超時(shí)問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評論

历史| 台安县| 神农架林区| 盐津县| 吉水县| 远安县| 秭归县| 竹山县| 遂平县| 英山县| 乳山市| 丹阳市| 承德县| 康乐县| 元江| 水富县| 兴宁市| 邵武市| 七台河市| 泗阳县| 嘉峪关市| 康定县| 龙游县| 库伦旗| 云南省| 保靖县| 宁波市| 晋宁县| 丰县| 皋兰县| 永丰县| 沙湾县| 会昌县| 和政县| 桐柏县| 鄯善县| 梧州市| 隆尧县| 定远县| 灌阳县| 柞水县|