Java编程

导航菜单



当前位置: 首页  /  Java高级  /  正文

Docker配置Nginx Tomcat实现简单的Web负载均衡

阅读:6

Docker配置Nginx Tomcat实现简单的Web负载均衡

负载均衡在服务端开发中算是一个比较重要的特性。因为Nginx除了作为常规的Web服务器外,还会被大规模的用于反向代理前端,因为Nginx的异步框架可以处理很大的并发请求,把这些并发请求hold住之后就可以分发给后台服务端(backend servers,也叫做服务池, 后面简称backend)来做复杂的计算、处理和响应,这种模式的好处是相当多的:隐藏业务主机更安全,节约了公网IP地址,并且在业务量增加的时候可以方便地扩容后台服务器。

负载均衡原理图

1、拉取Nginx和Tomcat镜像

docker pull nginx

docker pull tomcat

docker images查看镜像

docker images查看镜像

2、新建tomcat容器分别为tomcat1/tomcat2/tomcat3

docker run --name tomcat1-p 8080:8080 tomcat

docker run --name tomcat2-p 8081:8080 tomcat

docker run --name tomcat3-p 8082:8080 tomcat

docker ps -a 查看新建容器

查看容器

可在浏览器里分别打开:http://192.168.1.58:8080、http://192.168.1.58:8001、http://192.168.1.58:8082查看tomcat是否启动成功。

查看tomcat是否启动

3、新建nginx容器

docker run -p 80:80 --name mynginx -d nginx

docker ps -a 可查看容器状态,也可在8888端口访问(宿主计算机防火墙要开启8888端口的访问)

docker exec -it mynginx bash 进入容器修改/etc/nginx/nginx.conf

keepalive_timeout 65;

#gzip on;

upstream testloadbalance {

server 192.168.1.58:8080;

server 192.168.1.58:8081;

server 192.168.1.58:8082;

}

server {

listen 80;

server_name testloadbalance;

charset utf-8;

location / {

proxy_pass http://testloadbalance;

proxy_set_header X-Real-IP $remote_addr;

client_max_body_size 100m;

}

}

# include /etc/nginx/conf.d/*.conf;

}

"/etc/nginx/nginx.conf" 48L, 1107C 44,14 Bot

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;

upstream testloadbalance {

server 192.168.1.58:8080;

server 192.168.1.58:8081;

server 192.168.1.58:8082;

}

server {

listen 80;

server_name testloadbalance;

charset utf-8;

location / {

proxy_pass http://testloadbalance;

proxy_set_header X-Real-IP $remote_addr;

client_max_body_size 100m;

}

}

# include /etc/nginx/conf.d/*.conf;

修改nginx.conf后,重启nginx,然后访问192.168.1.58(没有端口号)

访问没有端口的IP

访问成功,说明基本的配置是生效了,但是负载均衡有没有起作用?我们可以修改一个tomcat文件试试。修改后重启容器。多次访问会出现下面的情况:

测试负载是否生效

至此负载均衡已经生效,在三台机器之间做负载均衡。

Docker包容万象

标签

Docker配置简单NginxTomcatweb负载均衡


相关文章列表

Win平台上Tomcat与Nginx实现负载均衡指南

Win平台上Tomcat与Nginx实现负载均衡指南

一、前言对Tomcat服务器做负载均衡的原因:Tomcat服务器作为一个Web服务器,其并发数在300-500之间,如果有超过500的并发数便会出现Tomcat不能响应新的请求的情况,严重影响网站的...


Tomcat - 如何设计一个简单的web容器

Tomcat - 如何设计一个简单的web容器

在学习Tomcat前,很多人先入为主地对它的认知是巨复杂的;所以第一步,在学习它之前,要打破这种观念,我们通过学习如何设计一个最基本的web容器来看它需要考虑什么;进而在真正学习Tomcat时,多把重...


Nginx和Tomcat配合实现Java Web服务热部署

Nginx和Tomcat配合实现Java Web服务热部署

背景基于Springboot应用以war包的形式运行在tomcat容器中,当更新war包时会有一段时间服务返回404,这对于线上服务是不可接受的。4层的负载均衡可以自动将80端口关闭的节点下线,但由于...


docker随手笔记第十二节 jenkins+docker+nginx+纯静态页面配置

docker随手笔记第十二节 jenkins+docker+nginx+纯静态页面配置

jenkins自动部署前端静态页面点击新建任务输入任务名称,选择构建自由风格软件项目,然后点击确定丢弃旧的构建配置源码选择你前端git仓库地址,或者svn地址配置Delete workspace be...


快速掌握tomcat8配置web页面管理的关键步骤

快速掌握tomcat8配置web页面管理的关键步骤

概述大部分时候,我们的tomcat服务器都不是部署在本机,那么怎么样不通过ftp/sftp方式来将war包部署到tomcat容器呢?tomcat有提供web页面管理应用的功能。tomcat页面管理进入...


丰富你的Java Web技能——精通Tomcat配置技巧

丰富你的Java Web技能——精通Tomcat配置技巧

前言:在各类网站论坛上,没有找到与工作比较贴切的技能,所以特此写一些对刚步入工作或者工作中没有重视的技能与问题,各位大牛请及时关闭文章.ps:文中所有标点都是英文的,看官请不要在意.为了便于平时敲代码...


友情链接