zoukankan      html  css  js  c++  java
  • Docker 下 nginx + tomcat 负债均衡

    nginx 的安装请参考Docker 安装 nginx 并挂载宿主目录到容器中

    多个 tomcat 安装

    • 按照Docker 安装 tomcat 并挂载宿主目录到容器中 方式,启动三个 tomcat,宿主端口分别为 8081,8082,8083。同时在宿主的 home/ubuntu/tomcat/ 分别创建 service1 , service2,service3 目录,并在该目录下创建 webapps 目录,同时把 war 包放在该目录下。

      • service1:
      docker run --name tomcat-service1 -d -p 8081:8080 -v /home/ubuntu/tomcat/service1/webapps:/usr/local/tomcat/webapps tomcat  
      
      • service2:
      docker run --name tomcat-service2 -d -p 8082:8080 -v /home/ubuntu/tomcat/service2/webapps:/usr/local/tomcat/webapps tomcat 
      
      • service3:
      docker run --name tomcat-service3 -d -p 8083:8080 -v /home/ubuntu/tomcat/service3/webapps:/usr/local/tomcat/webapps tomcat 
      
    • 通过 ip + 端口 的方式,可以访问到 war 的接口

    nginx 配置实现负债均衡

    • 在安装 nginx 的时候,发现配置文件有两个

      • /etc/nginx/nginx.conf
      • /etc/nginx/conf.d/default.conf
    • 打开 /etc/nginx/nginx.conf 的配置文件,在 http 模块 的最后可以看到 include /etc/nginx/conf.d/*.conf; 可以看到第二个配置文件是第一个配置文件的 http 模块的内容,只不过分开配置了。配置信息如下:

      user  nginx;
      worker_processes  1;
      
      error_log  /var/log/nginx/error.log warn;
      pid        /var/run/nginx.pid;
      
      
      events {
          worker_connections  1024;
      }
      
      
      http {
          include       /etc/nginx/mime.types;
          default_type  application/octet-stream;
      
          log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
      
          access_log  /var/log/nginx/access.log  main;
      
          sendfile        on;
          #tcp_nopush     on;
      
          keepalive_timeout  65;
      
          #gzip  on;
      
          include /etc/nginx/conf.d/*.conf;
      }
      
      
    • 配置 /etc/nginx/conf.d/default.conf 实现负载均衡

      upstream balance{
          server 127.0.0.1:8081;
          server 127.0.0.1:8082;
          server 127.0.0.1:8083;
      }
      server {
          listen       80;
          server_name  localhost;
      
          #charset koi8-r;
          #access_log  /var/log/nginx/host.access.log  main;
      
          location /springboot/ {
                      proxy_pass http://balance;
          }
      
          location / {
                      root   /usr/share/nginx/html;
                      index  index.html index.htm;
          }
      
      
          #error_page  404              /404.html;
      
          # redirect server error pages to the static page /50x.html
          #
          error_page   500 502 503 504  /50x.html;
          location = /50x.html {
              root   /usr/share/nginx/html;
          }
      
      }
      
      • 在原有的基础上添加了 upstream 模块,和在 server 中添加了 location 模块。
    • 完成配置文件以后,重启 docker restart CONTAINER_ID

    • 网页请求相关的接口,可以看到实现了负债均衡。

    参考: Docker+Nginx+tomcat实现一个服务器上多个tomcat的负载均衡

  • 相关阅读:
    html 时间区间选择功能
    Django 【settings】数据库设置
    Django forms 定制form字段
    避免js全局变量污染的方法
    js获取路由
    采用遍历的方法获取字符串a在字符串b中的位置
    vue 学习笔记
    Promise
    js常用JSON数据操作
    js 数组遍历方式
  • 原文地址:https://www.cnblogs.com/liyiran/p/12547697.html
Copyright © 2011-2022 走看看