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
  • 网页请求相关的接口,可以看到实现了负债均衡。

原文地址:https://www.cnblogs.com/liyiran/p/12547697.html

时间: 2024-10-17 11:58:10

Docker 下 nginx + tomcat 负债均衡的相关文章

Linux下nginx+tomcat负载均衡

1.为什么需要对tomcat服务器配置做负载均衡配置呢?[转] tomcat服务器作为一个web服务器,其并发数目在300-500之间,如果大于这个并发数,tomcat那么会出现不能响应某些请求,严重影响程序的正常工作.另外,在访问量比较大的情况下,tomcat的线程数目会不断的增加.由于tomcat自身的对内存的占有控制,当对内存的占有达到最大值时便会出现内存溢出,对程序的访问会严重超时等现象,这样必须重启服务器来释放占有的内存,对网站或者游戏来说,会造成很大的损失.所以对tomcat的负载均

使用docker部署nginx+tomcat架构(3):使用docker-compose简化部署操作

经历了之前的两篇,我们已经大体上了解了docker部署容器的过程. 使用docker部署nginx+tomcat架构 使用docker部署nginx+tomcat架构(2):访问mysql数据库 不过,整个部署过程中需要手动输入很多的docker命令,稍显繁琐并且容易出错.那么有没有一种相对简洁优雅的方式来完成这些部署工作呢?答案是有的,docker-compose(一下简称“compose”)正是为此而生. 关于docker-compose(了解更多:https://docs.docker.c

Docker + redis + nginx + tomcat

Docker + redis + nginx + tomcat 环境 pc机 机器 192.168.1.242 系统 [[email protected] ~]# uname -a Linux hdp-gp-dk02 2.6.32-504.el6.x86_64 #1 SMP Tue Sep 16 01:56:35 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux [[email protected] ~]#  cat /etc/redhat-release Red

Nginx+Tomcat负载均衡集群

第3章:部署Tomcat及其负载均衡(案例) 防伪码:成功之前必须与孤独为伍! Tomcat应用场景:  Tomcat服务器是一个免费的开放源代码的web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的的场合下被普遍应用,是开始和调试JSP程序的首选.但是由于其处理静态HTML的能力远不及Apache或者Nginx,所以Tomcat通常是作为一个Servlet和JSP容器,单独运行在后端.如图所示 一.部署tomcat 1.安装JDK,配置Java环境 1)安装jdk,建立

linux+nginx+tomcat负载均衡,实现session同步

linux+nginx+tomcat负载均衡,实现session同步 花了一个上午的时间研究nginx+tomcat的负载均衡测试,集群环境搭建比较顺利,但是session同步的问题折腾了几个小时才搞定,现把我的过程贴上来,以备用.软件及环境是:虚拟机上装centos 5.5IP为:192.168.0.51 装上nginx和tomcat  6.0.32 命名为 Tomcat1一台win7上装tomcat  6.0.32  IP为:192.168.0.50  命名为 Tomcat2 首先装ngin

Nginx + Tomcat 负载均衡群集 【内附源码包】

前言: 1·在之前都学习 Linux 的一些服务和搭建,都很熟悉 !这篇文章主要讲Nginx.Tomcat与 Nginx + Tomcat 负载均衡群集.2·在各种网站服务器软件中,除了 Apache HTTP Server 外,还有一款轻量级的 HTTP 服务器软件--Nginx,它是由俄罗斯 Lgor Sysoev(伊戈尔·赛索耶夫)开发. Nginx 的优点: 1·稳定性2·系统资源消耗低3·高并发链接的处理能力 (30000~50000 个并发请求),核心优点!4·反向代理服务器5·安装

Centos7搭建nginx+tomcat负载均衡

Nginx简介 Nginx是一种服务器软件,也是一种高性能的http和反向代理服务器,同时还是一个代理邮件服务器.也就是说,我们在Nginx上可以发布网站,可以实现负载均衡(提高应答效率,避免服务器崩溃),还可以作为邮件服务器实现收发邮件等功能.而最常见的就是使用Nginx实现负载均衡. Nginx与其他服务器的性能比较 Tomcat服务器面向Java语言,是重量级的服务器,而Nginx是轻量级的服务器.Apache服务器稳定.开源.跨平台,但是Apache服务器不支持高并发,Nginx能支持处

使用docker部署nginx+tomcat架构(2):访问mysql数据库

上一篇完成了通过docker部署nginx+tomcat的基础软件架构,但是距离一个真正可用的软件架构还差得很远.其中最重要的一点是缺少数据库这个角色的存在,那么本篇就来完善这一点. 废话少说,直接进入正题. 首先拉取mysql镜像: docker pull mysql:5.7 创建本地mysql目录: mkdir -p ~/mysql/data ~/mysql/conf ~/mysql/logschmod -R 777 ~/mysql/logs 在mysql/conf目录下创建配置文件my.c

Nginx+Tomcat负载均衡群集(实战可跟做!)

Nginx+Tomcat负载均衡群集 nginx处理静态 tomcat处理动态 合并为动静分离(前后端分离) Tomcat重要目录 bin:存放启动和关闭Tomcat脚本conf:存放Tomcat不同的配置文件doc:存放Tomcat文档lib/japser/common:存放Tomcat运行需要的库文件logs:存放Tomcat执行时的LOG文件src:存放Tomcat的源代码webapps:Tomcat的主要Web发布目录 Demo前置知识点: Nginx静态处理优势 1.Nginx处理静态