Docker安装部署nginx,Tomcat。并通过Nginx实现反向代理,负载均衡,动静分离,高可用性。

【Docker】安装Nginx容器并部署前后端分离项目 Nginx一站式安装并结合网络通讯让各个容器之间可以相互访问,随后部署前后端项目使其负载均衡!! 阅读详情

1.CentOS 安装Docker

Centos7上安装docker - 风止雨歇 - 博客园

2.Docker 安装 Nginx

2.1拉取镜像(直接拉最新版就好了)

docker pull nginx

如果想指定版本例如想拉取1.21.6版本的直接后面加英文冒号加版本号就行:

docker pull nginx:1.21.6

2.2镜像生成容器。

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

-d            表示后台运行。 
--name nginx  表示起个名字叫nginx
-p 80:80      表示端口映射 :第一个80是你本机的端口号,第二个80是固定的是docker中nginx默认端口
nginx         表示你的镜像名字 如果你pull的1.21.6版本的话这里的命令应该是:
                    docker run -d --name nginx -p 80:80 nginx:1.21.6
-v.           表示路径映射:配置文件每次要跑到容器中修改是很麻烦的所以这里最好还是配置路径映射。 因为是测试学习用的。所以一些重要数据和日志没有做路径映射。只做了配置文件的映射。 

2.3验证docker启动成功与否

docker ps

3.nginx反向代理

思路:通过配置配置文件完成反向代理。

3.1任务目标:本机访问浏览器访问www.123.com 跳转到部署在192.168.1.8:8080服务器的tomcat。

3.2准备:在192.168.1.9搭建nginx 并通过192.168.1.9成功访问nginx首页,

                在192.168.1.8搭建tomcat 并通过192.168.1.8:8080成功访问tomcat

下面介绍如何搭建tomcat

3.3 Tomcat搭建

3.3.1CentOS安装docker

Centos7上安装docker - 风止雨歇 - 博客园

3.3.2 Docker安装Tomcat

a.拉取镜像。

docker pull tomcat:8.0.52

b.镜像生成容器。

docker -d --name tomcat -p 8080:8080 tomcat:8.0.52

c.查看是否启动

docker ps

d.问题排查

如果docker ps 发现服务正常启动但是本机无法访问tomcat可能是因为以下问题导致:

1.镜像版本问题
docker pull tomcat
在docker pull tomcat时没有选择版本。此时docker会自动拉取最新的tomcat版本。 而最新的tomcat版本中webapps目录下是空的,所有文件被放在一个叫webapps.dist 文件夹下。会导致无法访问。 
解决办法:
a.进入docker中的tomcat
docker exec -it tomcat bash 或者docker exec -it /bin/bash
b.删除webapps目录
rm -rf webapps
c.重命名webapps.dist 为webapps
mv webapps.dist webapps 
d.退出docker 中的tomcat
exit

2.防火墙限制
解决方案(两个都可以):a.关闭防火墙  b.为防火墙开通端口
a.关闭防火墙
systemctl stop firewalld
b.为防火墙开端口
    1.开放端口
    firewall-cmd --zone=public --add-port=8080/tcp --permanent  
    2.配置立即生效
    firewall-cmd --reload  

3.如果你用的是云服务器。可能是因为开放规则的显示。 
此时就需要你登陆你的阿里云或者腾讯云的管理界面。添加规则。如下图所示

此时准备工作完毕。

3.4需要让本机访问www.123.com时跳转到我们搭建的服务器

需要在本机配置ip和域名的对应地址

本机为mac

在本机(测试机)配置。配置tomcat服务器ip和www.123.com域名绑定。

vi /private/etc/hosts

添加:
192.168.1.8 www.123.com

修改nginx配置文件实现反向代理:


server{
  listen 80;
  server_name 192.168.1.8;

  location / {
    root html;
    proxy_pass http://192.168.9:8080;
    index index.html,index.htm;
  }
}

 4.nginx实现负载均衡

1.任务目标。访问同一地址时候会从不同服务器获取文件

准备:两台tomcat服务器。

一台地址192.168.1.8分别在webapps目录下建立文件夹test,在test建立文件a.html,输入内容192.168.1.8。

一台地址192.168.1.7分别在webapps目录下建立文件夹test,在test建立文件a.html,输入内容192.168.1.7。

修改nginx配置文件

upstream myserver {
  server 192.168.1.7:8080;
  server 192.168.1.8:8080;
}
server{
  listen 80;
  server_name 192.168.1.9;

  location / {
    proxy_pass http://myserver;
    
  }
}


注:8 是tomcat1,7是tomcat2,9是nginx服务器

配置不同的负载均衡规则:

0.轮询。

上面默认就是轮询的方式。 请求一次是8,再请求一次就是7.

1.权重。访问一次7,访问2次8;

upstream myserver {
  server 192.168.1.7:8080 weight=1;
  server 192.168.1.8:8080 weight=2;
}
server{
  listen 80;
  server_name 192.168.1.9;

  location / {
    proxy_pass http://myserver;
    
  }
}


注:8 是tomcat1,7是tomcat2,9是nginx服务器

2.ip_hash

如果某ip访问第一访问nginx转发到7.那以后都会访问7,不会切换到8.

使用ip_hash可以部分解决分布式session同步存储问题。 但是限制了负载均衡。

upstream myserver {
  ip_hash;
  server 192.168.1.7:8080;
  server 192.168.1.8:8080;
}
server{
  listen 80;
  server_name 192.168.1.9;

  location / {
    proxy_pass http://myserver;
    
  }
}


注:8 是tomcat1,7是tomcat2,9是nginx服务器

3.fair

通过访问哪个服务器的时间长短决定。

注:fair在最新版的nginx不支持。 可自行下载旧版nginx测试。

upstream myserver {
  server 192.168.1.7:8080;
  server 192.168.1.8:8080;
  fair;
}
server{
  listen 80;
  server_name 192.168.1.9;

  location / {
    proxy_pass http://myserver;
    
  }
}


注:8 是tomcat1,7是tomcat2,9是nginx服务器

5.动静分离

思想:nginx可以通过文件名后缀实现区分不同类型文件来重定向到不同服务器。 

准备:一台nginx服务器9     建立测试文件   /data/test/web/a.html 和/data/test/images/a.png

a.html 可随便输入 test。

a.png      可自行上传图片

修改nginx配置

server{
    listen     80;
    server_name 192.168.1.9;



    location /web/ {
        root /data/test/;
        index index.html index.htm;
    }

    location /images/ {
        root /data/test/;
        autoindex on;
    }

}

1.修改配置后可通过192.168.1.9/web/a.html访问到页面

2.可通过192.168.1.9/images/a.png      访问到图片

3.可通过192.168.1.9/images/  访问到该文件夹目录。 (因为配置了autoindex on)

注意:images后面有个斜杠/

5.高可用

通过keepalived实现多个nginx管理

1.  找两台服务器192.168.1.10 和192.168.1.9安装nginx和keepalived

keepalived安装

yum install -y keepalived

如果安装失败则可能是因为本地没有依赖库

下载一下依赖库,然后安装。

yum install -y libnl*
yum install -y libnfnetlink-devel zlib zlib-devel gcc gcc-c++ openssl openssl-devel openssh

安装成功之后可以设置为开机自动启动。

service keepalived start
关闭keepalived服务systemctl stop keepalived.service
# 配置开机自启动
systemctl enable keepalived

可以通过命令查看是否安装成功

keepalived --version

然后配置keepalived

使用docker部署nginx+tomcat架构.pdf 实现动态/静态(资源请求)分离和负载均衡打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 立即下载

相关推荐

WRF-CHEM 新手向实践(四):化学初始/边界场及namelist设置

这是这个系列的最后一节了,这些经验是自己作为一个半路出家的外行一步步摸索出来的,其中不免有很多理解不到位的地方,但也正是如此,我相信这是目前新手入门wrf-chem最友好的教程之一,希望能对大家有实质性的帮助。本节继续未完成的内容。在mozbc生成化学初始和边界条件之前,还需要先在wrfinput文件中开启化学部分。

qq_42335815的博客 4638

【Nginx】使用Docker完成Nginx负载均衡+动静分离

Docker配置Nginx的负载均衡和动静分离

qq_35852228的博客 911

【高级-RAG-优化方法】

本文介绍了两种优化RAG(检索增强生成)系统的高级方法。第一部分介绍KnowFlow项目,它采用父子分块技术,将文档分为父分块(800-1500字符)和子分块(200-400字符),通过精确匹配子分块再返回父分块内容来保证搜索精确性和上下文完整性。第二部分探讨Milvus的多种增强技术,包括查询增强(如假设问题生成、回溯提示)、索引增强(自动合并块、分层索引)、检索器增强(句子窗口检索、元数据过滤)、生成器增强(提示压缩、块排序)以及管道增强(自我反省、代理查询路由)。这些方法共同提升了RAG系统的检索效率

weixin_48585108的博客 960

Docker容器--部署nginx+tomcat

简单的服务部署部署nginx:部署tomcat 官网查看nginx镜像文件的详细信息:https://hub.docker.com/search?q=nginx&type=image 部署nginx: 1.搜索镜像 docker search nginx #查看公网上所有nginx的版本 2.下载镜像: docker pull nginx #默认下载最新版(last版本) 3.运行nginx: docker run -d --name nginx01 -p 3344

Johnyangyuan的博客 480

从原理到应用:深入解析双编码器在机器人关节力矩感知中的实现

本文深入解析了双编码器方案在机器人关节力矩感知中的实现原理与应用。该方案通过在电机侧和输出侧分别安装编码器,利用两者位置差异间接高精度计算外力,克服了传统电流环精度不足和扭矩传感器成本高昂的缺点。它为实现协作机器人的丝滑拖动示教、灵敏碰撞检测以及足式机器人的动态平衡与柔顺控制提供了关键技术支撑,是目前高性能机器人力控的主流选择。

t8u9v0w1x的博客 662

keil自动分配SDRAM空间设置使用

1.修改.sct文件。

qizhi321123的博客 1404

Docker环境中部署Nginx、Tomcat

该练习是为了熟练运用docker中的镜像和容器管理命令。

m0_52049418的博客 278

[内网基础] 内网基础知识 —— Windows 工作组

在一个大型单位里,可能有成百上千台计算机互相连接组成局域网,如果不对这些计算机进行分组,网络的混乱程度是可想而知的。Windows 为了解决这一问题,就产生了工作组(Work Group)这个概念。Windows 工作组尝试将不通的计算机按功能(或部门)分别列入不同的工作组,例如技术部的计算机都列入 “技术部” 工作组、行政部的计算机都列入 “行政部” 工作组。要想访问某个部门的资源,只要在 “网络” 里双击该部门的工作组名,就可以看到该部门里的所有计算机了。

Blue17 の 小窝 1604

docker的安装以及docker中安装nginx以及文件配置映射

Get https://registry-1.docker.io/v2/library/centos/manifests/latest: Get https://auth.docker.io/tokenscope=repository%3Alibrary%2Fcentos%3Apull&service=registry.docker.io: net/http: TLS handshake timeout,接下来在docker容器里面安装nginx服务器来进行测试。...

m0_67391521的博客 804

【Linux命令大全】006.网络通讯之netstat命令(实操篇)

本文详细介绍了Linux系统中netstat网络诊断命令的实用技巧。主要内容包括:1) 基本功能与参数详解,展示如何查看网络连接、路由表和接口统计;2) 安装方法及基础用法,如查看TCP/UDP连接、显示进程信息和路由表;3) 高级应用技巧,包括监听端口检查、连接状态统计和实时监控。文章通过表格和代码示例,系统性地呈现了netstat在系统管理中的核心应用场景,是网络故障排查和性能监控的实用指南。

yuhuasheng1997的博客 706

家用扫地机器人实物拆解报告-从顶盖到每一颗螺丝 · 逐层拆解旗舰扫拖一体机器人

2026年旗舰扫拖机器人拆解报告:采用D形机身设计,主机重4.5kg,基站重12kg。核心配置包括RK3588S+STM32H743双处理器、8颗21700电池、LDS激光雷达和双摄像头+结构光导航系统。创新设计亮点:锥形滚刷自动排毛发、活水循环拖地系统、基站集成450W强力集尘和自动上下水模块(带三重防漏保护)。整机采用模块化设计,关键部件均支持快速更换,在密封性、防呆设计和降本增效方面展现出成熟的工程智慧。

智能硬件研发,欢迎交流 519

docker安装nginx,并将配置文件映射到宿主机

p 指定主机与容器内部的端口号映射关系,格式 -p [宿主机端口号]:[容器内部端口],此处我使用了主机80端口,映射容器80端口。docker cp 的使用,将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。注:docker cp dbc 中的 “889” 为容器ID前缀,只要唯一就好了。–name 指定容器名称,此处我指定的是nginx。-d 指定容器以守护进程方式在后台运行。608 是容器的id。

陈沪的博客 1958

基于STM32+RFID设计的宿舍检修管理系统

设计一个上位机,用来管理查看维修检修信息,当维修寝室的设备或者检修完成时,通过STM32上的RC522刷一下这个寝室的IC卡,识别这是哪个寝室,识别成功后在软件上弹出一个对话框,填写本次维修或者检修的事件,填写完毕点击提交即可。...

2555

【Docker】Linux中使用Docker安装Nginx部署前后端分离项目应用

Nginx(发音为 "engine x")是一个开源的、高性能的 HTTP 服务器和反向代理服务器。它也可以作为一个 IMAP/POP3/SMTP 代理服务器。Nginx 是由 Igor Sysoev 开发的,最初是为了解决 C10K 问题(即如何处理一万个并发连接的问题)。现在,Nginx 已经成为了一种非常流行的 Web 服务器软件。Nginx因其简洁、高效和可靠的特点而备受欢迎。相比传统的Apache服务器,Nginx使用更少的系统资源,可以处理更多的并发连接。

SAME_LOVE的博客 1710

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Nginx 基础之静态网站部署,负载均衡,动静分离

一、Nginx 简介 1.1 简介 Nginx(engine x)是一个免费的,开源的,高性能的 HTTP 服务器, IMAP/POP3 代理服务器 和 TCP/UDP 代理服务器,通常可以用于进行反向代理和实现基于软件的负载均衡,除此之外,它还具备以下特性: Nginx 在设计时遵循模块化的设计方案,可以通过组合模块来扩展实现不同的功能,具备很高的扩展性。 Nginx 遵循 matser \ ...

黑白影的博客 1280

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

k8s实战案例之部署Nginx+Tomcat+NFS实现动静分离

根据业务的不同,我们可以导入官方基础镜像,在官方基础镜像的基础上自定义需要用的工具和环境,然后构建成自定义出自定义基础镜像,后续再基于自定义基础镜像,来构建不同服务的基础镜像,最后基于服务的自定义基础镜像构建出对应业务镜像;最后将这些镜像上传至本地harbor仓库,然后通过k8s配置清单,将对应业务运行至k8s集群之上;#自定义Centos 基础镜像# 添加阿里源# 自定义安装工具和环境/bin/bash在harbor上验证镜像是否正常上传?运行镜像为容器,验证对应镜像是否有我们添加的工具和环境。

woaimx_1314的博客 2593

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

docker 安装及配置 nginx + tomcat(一):基础安装

本文在 Centos 上从零安装 docker,以及基于 docker 安装 nginx + tomcat,实现简单的反向代理功能。

日常学习与专研的记录 2076

【Docker】使用Docker安装Nginx及部署前后端分离项目应用

Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。它是由为俄罗斯访问量第二的Rambler.ru站点开发的,公开版本1.19.6发布于2020年12月15日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。Nginx的特点是,事实上nginx的并发能力在同类型的网页服务器中表现较好。它可以作为静态页面的web服务器,同时还支持CGI协议的动态语言,比如perl、php等,。

无法自律的人的博客 2205

【Docker】在centos中安装nginx

Nginx(发音为"engine x")是一款高性能的开源Web服务器,也可以用作反向代理、负载均衡器和HTTP缓存。Nginx 的主要特点包括:高性能:Nginx 可以处理大量的并发连接,而且在高负载情况下表现良好。可扩展性:Nginx 可以作为反向代理和负载均衡器,可以轻松地扩展到多台服务器上。低内存消耗:Nginx 采用事件驱动的模型,不需要为每个连接创建一个线程或进程,因此内存消耗比传统的 Web 服务器更低。

m0_73647713的博客 1776

docker和nginx的安装与使用

docker安装与使用 菜鸟教程的docker安装传送门 下面辅助看 建立稳定仓库可以用下面这个: sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 安装docker 安装成功。 查看镜像 将docker虚拟机对象的文件挂载到主机,主机需要设创建文件 接下来是挂载 docker run -p 3306:3306 --name mysql \ -v /m

FA的博客 1577

基于docker使用nginx实现服务器的反向代理和负载均衡

基于docker使用nginx实现服务器的反向代理和负载均衡

qq_32340707的博客 700

nginx+tomcat+nfs →web集群部署

​ NGINX是一个高性能的Web服务器和反向代理服务器。它能够处理静态内容,缓存请求结果,以及将请求转发给后端服务器。通过反向代理,NGINX能够实现请求的负载均衡、安全性增强、SSL加密等功能,今天给大家分享nginx+tomcat实现负载均衡。 ​

Linux运维老纪的博客 1477

Docker安装Nginx实现反向代理

文章目录一、配置文件二、通过宿主机的配置文件启动三、反向代理 一、配置文件     以前的配置文件为一个nginx.conf,新的版本将其分成了两个,default.conf 和 nginx.conf,为通过数据卷映射的方式,但没有在github上找到分开的这两个文件,因此先通过直接运行的方式得到这两个文件。 先普通方式运行一个nginx容器 docker run --name my-nginx...

Beyonderwei的博客 1317

docker篇-(docker安装nginx,反向代理,ssl,负载均衡)

docker安装nginx查找nginx镜像拉去nginx镜像运行镜像查看运行效果nginx实现反向代理tomcat,基于负载均衡nginx配置ssl 查找nginx镜像 docker search nginx 拉去nginx镜像 # 这里我拉去的是nginx:alpine镜像,是nginx最小镜像 docker pull nginx:alpine 运行镜像 docker run --name nginx -p 80:80 -d nginx:alpine 查看运行效果 nginx实现反向代理tomc

qq_42413011的博客 793

基于阿里云docker的nginx简单使用:反向代理、负载均衡。

准备工作: ①阿里云上安装docker。 ②用docker pull tomcat和nginx的image。 ③用docker run 一台nginx和一台tomcat。 启动命令: 启动一台nginx: docker run -name nginx-test -p 5003:80 -d nginx 启动一台tomcat docker run --name tomcat-test -p 5004:8080 -d tomcat 注:打开阿里云的防火墙5003和5004,以及阿里云安全组的5003和500

Explore 763

05、docker安装nginx

目录1、自定义网络相关命令2、nginx是什么Nginx+tomcat是目前主流的java web架构3、安装nginx4、docker实战之通过nginx镜像来部署SPA项目5、nginx.conf讲解

全栈 2万+
上一篇: 本地连接腾讯云服务器无操作自动退出
下一篇: Windows本机Oracle忘记密码问题记录
Renaissance14th
博客等级 码龄9年 39粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值