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

使用Docker Compose 實(shí)現(xiàn)nginx負(fù)載均衡的方法步驟

 更新時(shí)間:2019年05月22日 10:42:45   作者:董俊俊  
這篇文章主要介紹了使用Docker Compose 實(shí)現(xiàn)nginx負(fù)載均衡的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

以Docker的網(wǎng)絡(luò)管理,容器的IP設(shè)置為基礎(chǔ)知識實(shí)現(xiàn)Nginx負(fù)載均衡

查看所有docker網(wǎng)絡(luò)

docker network ls

/*
NETWORK ID     NAME         DRIVER       SCOPE
b832b168ca9a    bridge        bridge       local
373be82d3a6a    composetest_default  bridge       local
a360425082c4    host         host        local
154f600f0e90    none         null        local

*/

// composetest_default 是上一篇介紹Compose時(shí),docker-compose.yml文件所在的目錄名,
// 所以,用docker-compose創(chuàng)建的容器會默認(rèn)創(chuàng)建一個(gè)以目錄名為網(wǎng)絡(luò)名的網(wǎng)絡(luò),并且是dridge(橋接)類型

指定容器IP地址

官網(wǎng)文檔地址:https://docs.docker.com/compose/compose-file/#ipv4_address-ipv6_address

繼續(xù)編寫上一篇《12.使用Docker Compose容器編排工具》文章中的docker-compose.yml

version: "3"
services:
  web1:
    container_name: web1
    image: "centos:httpd"
    ports:
      - "8080:80"
    privileged: true
    volumes:
      - "/app/www/web1/:/var/www/html/"
    command: ['/usr/sbin/init']
    networks:
      nginx-lsb:
        ipv4_address: 192.169.0.3
  web2:
    container_name: web2
    image: "centos:httpd"
    ports:
      - "8081:80"
    privileged: true
    volumes:
      - "/app/www/web2/:/var/www/html/"
    command: ['/usr/sbin/init']
    networks:
      nginx-lsb:
        ipv4_address: 192.169.0.2
networks:
  nginx-lsb:
    driver: bridge
    ipam:
      config:
        - subnet: 192.169.0.0/16

使用docker-compose啟動(dòng)容器

docker-compose up -d

查看容器是否啟動(dòng),并確認(rèn)是否創(chuàng)建了網(wǎng)絡(luò) nginx-lsb

// 可以查看當(dāng)前docker-compose.yml配置的容器組里的容器狀態(tài)
docker-compose ps

docker network ls

/*
NETWORK ID     NAME          DRIVER       SCOPE
b832b168ca9a    bridge         bridge       local
373be82d3a6a    composetest_default   bridge       local
de6f5b8df1c8    composetest_nginx-lsb  bridge       local
a360425082c4    host          host        local
154f600f0e90    none          null        local
*/

// 創(chuàng)建了nginx-lsb網(wǎng)絡(luò),命名是容器組項(xiàng)目的 文件名開頭_網(wǎng)絡(luò)名

查看網(wǎng)絡(luò) nginx-lsb的詳情

docker network inspect composetest_nginx-lsb

// 詳情里面可以看到使用這個(gè)網(wǎng)絡(luò)的每個(gè)容器的ip

如:

/*
...
 "Containers": {
      "039aa860ef04f20a7566fdc943fb4398a61d2ad6dd3e373b17c86ac778af89e3": {
        "Name": "web2",
        "EndpointID": "1bc206661179e65999015f132c2889d3d4365b8d42b8a89cf9c260016fedd5ee",
        "MacAddress": "02:42:c0:a9:00:02",
        "IPv4Address": "192.169.0.2/16",
        "IPv6Address": ""
      },
      "437ad7a07da8e46c0abaf845c4b08425338009fbe972bde69478cf47c75c315b": {
        "Name": "web1",
        "EndpointID": "5a36e602a5364ee9ad06e9816d09e3966d56ebf06b9394ebc25b8bcee9546607",
        "MacAddress": "02:42:c0:a9:00:03",
        "IPv4Address": "192.169.0.3/16",
        "IPv6Address": ""
      }
    },
...
*/

使用 env_file環(huán)境文件:

簡單可以理解為:在docker-compose.yml中定義變量,引用在外部.env文件中進(jìn)行變量定義

官方文檔地址:https://docs.docker.com/compose/compose-file/#env_file

// 還是在composetest目錄中定義個(gè) .env文件,用來存放變量
web1_addr=192.169.0.2
web2_addr=192.169.0.3

// 修改docker-compose.yml文件,加入變量定義
version: "3"
services:
  web1:
    container_name: web1
    image: "centos:httpd"
    ports:
      - "8080:80"
    privileged: true
    volumes:
      - "/app/www/web1/:/var/www/html/"
    command: ['/usr/sbin/init']
    networks:
      nginx-lsb:
        ipv4_address: ${web1_addr}
  web2:
    container_name: web2
    image: "centos:httpd"
    ports:
      - "8081:80"
    privileged: true
    volumes:
      - "/app/www/web2/:/var/www/html/"
    command: ['/usr/sbin/init']
    networks:
      nginx-lsb:
        ipv4_address: ${web2_addr}
networks:
  nginx-lsb:
    driver: bridge
    ipam:
      config:
        - subnet: 192.169.0.0/16

重新啟動(dòng)composetest項(xiàng)目,并查看網(wǎng)絡(luò)詳情,確認(rèn)容器ip是否設(shè)置成功

// 重新啟動(dòng)composetest項(xiàng)目
docker-compose up -d

// 查看網(wǎng)絡(luò)詳情
docker network inspect composetest_nginx-lsb

在composetest項(xiàng)目中添加一臺nginx服務(wù)器作為負(fù)載均衡服務(wù)器

// 在.env文件里添加一個(gè)變量 nginx_lsb
web1_addr=192.169.0.2
web2_addr=192.169.0.3
nginx_lsb=192.169.0.100

// 修改docker-compose.yml文件,加入變量定義
version: "3"
services:
  nginx-lsb:
    container_name: nginx-lsb
    image: "centos:nginx"
    ports: 
      - "8000:80"
    privileged: true
    volumes:
      - "/app/nginx/nginx.conf:/etc/nginx/nginx.conf"
    networks:
      nginx-lsb:
        ipv4_address: ${nginx_lsb}
  web1:
    container_name: web1
    image: "centos:httpd"
    ports:
      - "8080:80"
    privileged: true
    volumes:
      - "/app/www/web1/:/var/www/html/"
    command: ['/usr/sbin/init']
    networks:
      nginx-lsb:
        ipv4_address: ${web1_addr}
  web2:
    container_name: web2
    image: "centos:httpd"
    ports:
      - "8081:80"
    privileged: true
    volumes:
      - "/app/www/web2/:/var/www/html/"
    command: ['/usr/sbin/init']
    networks:
      nginx-lsb:
        ipv4_address: ${web2_addr}
networks:
  nginx-lsb:
    driver: bridge
    ipam:
      config:
        - subnet: 192.169.0.0/16

// 重新啟動(dòng)composetest項(xiàng)目
docker-compose up -d

修改nginx.conf配置文件,配置負(fù)載均衡

upstream mydocker {
  server 192.169.0.2;
  server 192.169.0.3;
}

server {
  listen 80;
  server_name mydocker;
  location / {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_buffering off;
    proxy_pass http://mydocker;
  }
}

重新啟動(dòng)nginx-lsb,加載配置文件

docker-composer restart nginx-lsb

訪問 http://服務(wù)器IP地址:8000,測試服務(wù)器負(fù)載均衡!

注意:上一篇已經(jīng)在兩臺httpd服務(wù)器上放置了不同的web文件

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談Docker鏡像列表中的none:none是什么

    淺談Docker鏡像列表中的none:none是什么

    這篇文章主要介紹了Docker鏡像列表中的none:none問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 使用docker的python基礎(chǔ)鏡像時(shí)要指定patch版本原理

    使用docker的python基礎(chǔ)鏡像時(shí)要指定patch版本原理

    這篇文章主要為大家介紹了使用docker的python基礎(chǔ)鏡像時(shí)要指定patch版本原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • Docker容器數(shù)據(jù)卷介紹及操作示例

    Docker容器數(shù)據(jù)卷介紹及操作示例

    這篇文章主要為大家介紹了Docker容器數(shù)據(jù)卷介紹及操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • 在docker中開啟sshd操作

    在docker中開啟sshd操作

    這篇文章主要介紹了在docker中開啟sshd操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Docker容器化部署Python應(yīng)用過程解析

    Docker容器化部署Python應(yīng)用過程解析

    這篇文章主要介紹了Docker容器化部署Python應(yīng)用過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Docker搭建代碼檢測平臺SonarQube并檢測maven項(xiàng)目的流程

    Docker搭建代碼檢測平臺SonarQube并檢測maven項(xiàng)目的流程

    這篇文章主要介紹了Docker搭建代碼檢測平臺SonarQube并檢測maven項(xiàng)目,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • docker中run和exec有什么區(qū)別示例詳解

    docker中run和exec有什么區(qū)別示例詳解

    這篇文章主要介紹了docker中run和exec有什么區(qū)別的相關(guān)資料,docker?run`用于創(chuàng)建并啟動(dòng)新容器,而docker?exec用于在已運(yùn)行容器中執(zhí)行命令,前者適用于啟動(dòng)新服務(wù),后者適用于調(diào)試和管理運(yùn)行中的容器,需要的朋友可以參考下
    2025-03-03
  • Docker-Compose搭建Spark集群的實(shí)現(xiàn)方法

    Docker-Compose搭建Spark集群的實(shí)現(xiàn)方法

    本文主要介紹了Docker-Compose搭建Spark集群的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Docker安裝Kong API Gateway并使用的詳細(xì)教程

    Docker安裝Kong API Gateway并使用的詳細(xì)教程

    這篇文章主要介紹了Docker安裝Kong API Gateway并使用,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • 使用Dockerfile部署nodejs服務(wù)的方法步驟

    使用Dockerfile部署nodejs服務(wù)的方法步驟

    這篇文章主要介紹了使用Dockerfile部署nodejs服務(wù)的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01

最新評論

满洲里市| 和龙市| 浑源县| 抚松县| 化州市| 武安市| 丰县| 澄城县| 九江市| 子洲县| 胶州市| 彭州市| 宜川县| 汽车| 涞源县| 阿拉善盟| 崇仁县| 滕州市| 洛宁县| 敦化市| 保亭| 图片| 惠州市| 泰和县| 宁安市| 云林县| 江川县| 松滋市| 万载县| 定结县| 宾川县| 巴青县| 西乌珠穆沁旗| 庆云县| 鄂托克旗| 简阳市| 望江县| 社会| 牙克石市| 蚌埠市| 安多县|