国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

13.使用Docker Compose 實現nginx負載均衡

SexySix / 2589人閱讀

摘要:以的網絡管理,容器的設置為基礎知識實現負載均衡查看所有網絡是上一篇介紹時,文件所在的目錄名,所以,用創建的容器會默認創建一個以目錄名為網絡名的網絡,并且是橋接類型指定容器地址官網文檔地址繼續編寫上一篇使用容器編排工具文章中的

以Docker的網絡管理,容器的IP設置為基礎知識實現Nginx負載均衡

查看所有docker網絡

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時,docker-compose.yml文件所在的目錄名,
// 所以,用docker-compose創建的容器會默認創建一個以目錄名為網絡名的網絡,并且是dridge(橋接)類型

指定容器IP地址

官網文檔地址:https://docs.docker.com/compo...

繼續編寫上一篇《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啟動容器

docker-compose up -d

查看容器是否啟動,并確認是否創建了網絡 nginx-lsb

// 可以查看當前docker-compose.yml配置的容器組里的容器狀態
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
*/

// 創建了nginx-lsb網絡,命名是容器組項目的 文件名開頭_網絡名

查看網絡 nginx-lsb的詳情

docker network inspect composetest_nginx-lsb

// 詳情里面可以看到使用這個網絡的每個容器的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環境文件:

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

官方文檔地址:https://docs.docker.com/compo...

// 還是在composetest目錄中定義個 .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

重新啟動composetest項目,并查看網絡詳情,確認容器ip是否設置成功

// 重新啟動composetest項目
docker-compose up -d

// 查看網絡詳情
docker network inspect composetest_nginx-lsb

在composetest項目中添加一臺nginx服務器作為負載均衡服務器

// 在.env文件里添加一個變量 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

// 重新啟動composetest項目
docker-compose up -d

修改nginx.conf配置文件,配置負載均衡

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;
    }
}

重新啟動nginx-lsb,加載配置文件

docker-composer restart nginx-lsb

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

注意:上一篇已經在兩臺httpd服務器上放置了不同的web文件

原文鏈接:http://www.mi360.cn/articles/20

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27853.html

相關文章

  • 13.使用Docker Compose 實現nginx負載均衡

    摘要:以的網絡管理,容器的設置為基礎知識實現負載均衡查看所有網絡是上一篇介紹時,文件所在的目錄名,所以,用創建的容器會默認創建一個以目錄名為網絡名的網絡,并且是橋接類型指定容器地址官網文檔地址繼續編寫上一篇使用容器編排工具文章中的 以Docker的網絡管理,容器的IP設置為基礎知識實現Nginx負載均衡 查看所有docker網絡 docker network ls /* NETWORK I...

    KitorinZero 評論0 收藏0
  • 生產環境中使用Docker Swarm的一些建議

    摘要:譯者按實踐中會發現,生產環境中使用單個節點是遠遠不夠的,搭建集群勢在必行。集群的網絡通信服務發現,負載均衡以及容器間通信非常可靠。負載均衡也是由提供的。 譯者按: 實踐中會發現,生產環境中使用單個Docker節點是遠遠不夠的,搭建Docker集群勢在必行。然而,面對Kubernetes, Mesos以及Swarm等眾多容器集群系統,我們該如何選擇呢?它們之中,Swarm是Docker原...

    loonggg 評論0 收藏0
  • Docker Swarm在生產環境中的進階指南

    摘要:應該如何解決本文將給出若干提示,如何在生產環境中使用。路由匹配服務發現負載均衡跨容器通訊非常可靠。在單個端口上運行一個服務,節點的任意主機都可以訪問,負載均衡完全在后臺實現。 上周數人云給大家分享了——《你可能需要的關于Docker Swarm的經驗分享》今天給大家帶來這位作者大大的后續文章——《Docker Swarm在生產環境中的進階指南》 當在本地開發環境中使用Docker,或者...

    galaxy_robot 評論0 收藏0
  • Kubernetes上的負載均衡詳解

    摘要:部署只是一種規則,控制器組件會將這一規則應用于實際負載均衡器中。原因是功能僅允許將端口用于路由,負載均衡器和則可作為全局啟動。負載均衡的限制提供了功能豐富的負載均衡器支持詳細介紹在此。截至目前,我們暫時無法使用工具將負載均衡器配置從轉換為。 如果您的應用程序是面向大量用戶、會吸引大量流量,那么一個不變的目標一定是在高效滿足用戶需求的同時、不讓用戶感知到任何類似于服務器繁忙!的情況。這一...

    CoderBear 評論0 收藏0

發表評論

0條評論

SexySix

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<