1. 程式人生 > 其它 >nginx為docker容器新增負載均衡

nginx為docker容器新增負載均衡

技術標籤:nginxdocker分散式

簡介

nginx作為當前最流行的負載均衡和反向代理伺服器,docker容器是完全使用沙箱機制效能開銷極低,為了將資料流平攤到多個相同的容器中我們可以在nginx中配置好節點做好負載均衡。

使用

  • docker-compose配置

bridge1:
    image: xxxxx
    container_name: bridge
    ports:
      - '3001:1986/tcp'
    restart: always
    networks:
      - uemp-net
bridge2:
    image: xxxxx
    container_name: bridge
    ports:
      - '3002:1986/tcp'
    restart: always
    networks:
      - uemp-net

3001和3002埠號就是我們要在nginx中分流的埠號

uemp-net配置的是172.18.0.1

  • nginx配置

user  www www;
worker_processes auto;
error_log  /www/wwwlogs/nginx_error.log  crit;
pid        /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;

events
    {
        use epoll;
        worker_connections 51200;
        multi_accept on;
    }
stream {
    upstream vgateway-bridge {
        server 172.18.0.1:3001 weight=1;
        server 172.18.0.1:3002 weight=1;
    }
    server {
        listen 13014;
        proxy_pass vgateway-bridge;
    }
}
http
{

}

stream節點是網站的負載均衡的資訊,叢集中有多少個站點就設定多少個即可

nginx 預設是輪詢的 ,weight=1 是權重分配 ,都是1表示平均分配,如果3002這臺weight =2 而 43 為1 ,表示3002的權重大,訪問轉3002 的多