当前位置: 首页 > news >正文

nginx的学习(二):负载均衡和动静分离

简介

nginx的负载均衡和动静分离的简单使用

负载均衡配置

外部访问linux的ip地址:80/edu/a.html地址,会轮询访问Tomcat8080和Tomcat8081服务。

Tomcat的准备

准备两个Tomcat,具体准备步骤在nginx的学习一的反向代理例子2中,在Tomcat8080中的/usr/src/tomcat8080/apache-tomcat-7.0.70/webapps目录下,创建edu文件夹,在edu文件夹中创建a.html。

<h1>8080</h1>

修改nginx的配置

修改/usr/local/nginx/conf目录下的nginx.conf文件。
在http块中添加:

 upstream myserver{server linux的ip地址:8080;server linux的ip地址:8081;}

在server块中的location块中添加:

 server {listen       80;server_name  linux的ip地址;  location / {proxy_pass http://myserver;}}

重启nginx

测试

外部访问linux的ip地址:80/edu/a.html
在这里插入图片描述
点击刷新,会访问8081Tomcat服务。

nginx的负载均衡策略

  • 轮询,是默认的方案,服务挂掉会自动剔除
  • 权重
  • ip hash:按访问的ip的hash结果分配,每个访客固定访问一个后端服务器,可以解决session问题
  • fair:需要第三方插件,按后端服务器的响应时间来请求分配,响应时间短的优先分配。

nginx的动静分离

把动态请求和静态请求区分开来,主要有两种:

  • 把静态文件独立成单独的域名,放在独立的服务器上(主流)
  • 把动态请求和静态请求混在一起发布,使用nginx区分。

可以调高访问的效率。

配置动静分离

把静态资源放到linux上,在外部访问linux的ip地址:80/image/linux的ip地址:80/image/的时候,可以访问到linux上的静态资源。

环境准备

在根目录下创建一个data文件,mkdir data
进入data,创建一个view和一个image文件夹mkdir view image
在view中创建一个a.html页面,内容是: < h1>static view < /h1>
在image中放一张图片,finalshell直接上传

修改nginx的配置文件

修改/usr/local/nginx/conf目录下的nginx.conf文件。
在server块中添加:

  location /view/ {root /data/;}location /image/ {root /data/;}  

重启nginx服务器

测试

外部访问linux的ip地址:80/view/a.html
在这里插入图片描述
外部访问linux的ip地址:80/image/
在这里插入图片描述

nginx的高可用

当nginx只有一个的时候,如果nginx挂了,那系统就不能使用了,所以需要保证nginx的高可用性。增加nginx服务器作为从nginx,主nginx负责转发请求,当主nginx宕机了后,由从nginx来转发请求。配置主从nginx需要软件keepalived.
两台服务器都下载keepalived,修改keepalived的配置文件,里面可以配置
主还是从,以及虚拟ip地址。然后还要写一个检测脚本,用来检查主nginx是否可用,不可用会自动切换。
就可以通过虚拟ip访问了。

nginx原理

master 和worker

启动nginx,会有master和worker进程。
在这里插入图片描述
master是管理监控worker的,worker可以有多个。

有请求来到nginx的时候,请求会来到master,它把任务给下面的worker,多个worker通过争抢的方式得到请求,然后完成具体的操作。

一个master,多个worker的好处

  • 利于nginx进行热部署操作
  • 每个worker都是独立的,不需要加锁,节省性能的开销
  • 其中的一些worker出异常了,也不影响整体的功能

一般设置的worker数量等同于服务器的cpu数量

连接数worker_connection
发送一个请求,占用2个或者4个worker的连接数
访问静态资源占一个,返回资源占一个
如果是动态资源,还要访问服务占一个,返回服务资源占一个

如果nginx有一个master,4个worker,每个worker支持最大连接数是1024个,支持41024/2(静态资源)或者41024/4(动态资源)的最大并发数。

http://www.lryc.cn/news/408715.html

相关文章:

  • 普中51单片机:DS1302时钟芯片讲解与应用(十)
  • Preact:轻量级替代React的选择
  • 全栈嵌入式C++、STM32、Modbus、FreeRTOS和MQTT协议:工业物联网(IIoT)可视化系统设计思路(附部分代码解析)
  • Greenplum数据库中的数据倾斜问题及处理方法
  • 缓存设计理论
  • IDEA-安装插件 驼峰下划线转换
  • 乾坤: 微前端项目切换时样式闪动(从无样式变为正常样式需要等 css chunk 文件加载完成, 加载延时受网速影响)
  • 《电子元器件之固态电容》
  • PLC 远程下载网关
  • 【Django】 读取excel文件并在前端以网页形式显示-安装使用Pandas
  • 自动控制:带死区的PID控制算法
  • 橙单后端项目下载编译遇到的问题与解决
  • EasyExcel 初使用—— Java 实现多种写入 Excel 功能
  • MySQL 和 SQL Server 中的连表更新 UPDATE JOIN 写法比较
  • 手把手教你FL Studio 24.1.1.4234中文破解安装激活图文激活教程
  • 使用Spring Boot与Spire.Doc实现Word文档的多样化操作
  • 从食堂采购系统源码到成品:打造供应链采购管理平台实战详解
  • 在window将Redis注册为服务
  • PHP商城案例
  • Linux:bash在被调用时会读取哪些启动文件?
  • 帆软FineReport之替换函数
  • Redis的应用场景及类型
  • 【图像处理】不智能的目标识别
  • 《500 Lines or Less》(5)异步爬虫
  • Transformer!自注意力机制的高层级理解Attention Is All You Need!
  • 关于使用Postman在请求https网址没有响应,但是用浏览器有响应的问题解决
  • 【React 】开发环境搭建详细指南
  • 结构体笔记
  • Elasticsearch:Golang ECS 日志记录 - zerolog
  • Ip2region - 基于xdb离线库的Java IP查询工具提供给脚本调用