5-20 Web服务器和Nginx
什么是Web服务器
简单来说
Web服务器就是一个能够接收http请求并作出响应的java程序
我们再二阶段编写的webServer项目其实就是我们手写的Web服务器
我们现在开发的标准SpringBoot项目启动时内置的Web服务器叫Tomcat
实际上我们业界中还有很多Web服务器,它们具备很多不同的特征
网关Gateway项目使用Netty服务器,Netty服务器内部是NIO的所以性能更好
下图以Tomcat为例,解释请求响应流程

大多数情况我们会使用Tomcat作为Web服务器
它是我们请求\响应流程中的核心组件
Tomcat是也有缺点
常规情况下,一个tomcat并发数在100多一点
一般情况下,一个网站要1000人在线,并发数是2%~5% 也就是20~50并发
如果需要一个支持更高并发的服务器,就是需要使用Nginx
Nginx
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。
我们一般使用它来做反向代理和静态资源服务器
Nginx的优势
- 高并发响应性能非常好,官方 Nginx 处理静态文件并发 5万/秒
- 反向代理性能非常强。(可用于负载均衡)
- 内存和 cpu 占用率低。(为 Apache(也是一个服务器) 的 1/5-1/10)
又小又快
Nginx快速的原因
常见面试题:Nginx为什么快
Nginx内部是一个主进程(Master)多个工作进程(Worker)
Master负责统筹管理配置和Worker的分工
Worker来负责处理请求,作出响应
而且使用非阻塞式的,异步的
简单来说,就是一个Worker接到一个请求后,对请求进行处理,处理后在响应返回前,这个Worker还会处理别的请求,直到请求返回响应时,才会处理响应,也就是Worker这个进程全程无阻塞
要想了解反向代理,首先了解正向代理

正向代理,当我们访问的目标服务器无法连通时,可以借助代理服务器,简介访问该目标服务器
关系类似于生活中的介绍人
反向代理

请求反向代理服务器的特点是,我们请求的是代理服务器的地址,真正提供服务的服务器地址我们不需要知道,这样做的好处是反向代理服务器后可能是一个集群,方便负载均衡
有点类似于生活中的代理人,有什么事情直接找这个人就能完成需求,它怎么完成的我们不用管
Nginx的使用
实际开发中,Nginx可以用于反向代理服务器,
实际处理请求的是Tomcat服务器

因为Nginx优秀的静态内容并发性能
我们常常使用它做静态资源服务器
在Nginx中保存图片,文件视频等静态资源
经常和FastDFS组合使用
FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
Nginx和Gateway的区别
首先明确Nginx和Gateway并不冲突
他们都是统一入口的概念,它们可以同时开启
也可以开启其中一个
只不过Nginx不属于java程序,而Gateway是java程序
Nginx是服务器程序我们不可编辑,
Gateway是我们自己创建的项目,依赖和配置都由我们自己完成
最终如果想做反向代理服务器,就使用Nginx
如果是微服务项目的网关就是Gateway
MybatisPlus
MybatisPlus是一个国内的团队在Mybatis框架基础上新增了一些功能的框架
MybatisPlus新增的功能主要两方面
1.提供的代码生成器
可以根据指定的数据库表,自动生成基本的实体类\控制器\业务层\持久层的相关文件
2.自动提供基本增删改查方法的默认实现
Oauth2.0
是一个授权框架
类似一个授权协议标准
我们常用的扫码登录就是Oauth2标准下的功能
nacos工作原理
本质上讲,我们启动服务,注册到nacos
就是将当前服务器信息提交到注册中心
nacos中会保存当前所有服务列表
当有新的信息到nacos时(或者是每隔5秒的心跳访问时)
nacos会将当前最新的服务列表信息同步给当前服务
5-20 Web服务器和Nginx的更多相关文章
- 如何搭建web服务器 使用Nginx搭建反向代理服务器 .
引言:最近公司有台服务器遭受DDOS攻击,流量在70M以上,由于服务器硬件配置较高所以不需要DDOS硬件防火墙.但我们要知道,IDC机房是肯定不允许这种流量一直处于这么高的,因为没法具体知道后面陆续攻 ...
- 树莓派变成一个Web服务器: nginx + php + sqlite
将树莓派变成一个Web服务器,通过访问网页,就可以控制树莓派,比如:查看摄像头\开灯等等. 一想到Linux Web服务器,我们首先想到的是,Apache + MySql + Php. 树莓派可以安装 ...
- 各种Web服务器与Nginx的对比
Tomcat和Jetty面向Java语言,先天就是重量级的Web服务器,它们的性能与Nginx没有可比性. IIS只能在windows操作系统上运行,Windows作为服务器在稳定性与其他一些性能上都 ...
- 20步打造最安全的NGINX WEB服务器
Nginx 是一个轻量级的,高性能的Web服务器以及反向代理和邮箱(IMAP/POP3)代理服务器.它运行在UNIX,GNU /linux,BSD 各种版本,Mac OS X,Solaris和Wind ...
- Nginx+uWSGI+Django部署web服务器
目录 Nginx+uWSGI+Django部署web服务器 环境说明 前言 搭建项目 Django部署 编辑luffy/luffy/settings.py 编辑luffy/app01/views.py ...
- 树莓派做web服务器(nginx、Apache)
一想到Linux Web服务器,我们首先想到的是: Apache + MySql + Php. Apache:是世界使用排名第一的Web服务器软件. 可以运行在几乎所有广泛使用的计算机平台上,由于其跨 ...
- [阿里云部署] Ubuntu+Flask+Nginx+uWSGI+Mysql搭建阿里云Web服务器
部署地址:123.56.7.181 Ubuntu+Flask+Nginx+uWSGI+Mysql搭建阿里云Web服务器 这个标题就比之前的"ECS服务器配置Web环境的全过程及参考资料&qu ...
- WEB服务器防盗链_HttpAccessKeyModule_Referer(Nginx&&PHP)
盗链的概念指在自己的页面上展示一些并不在自己服务器上的内容.也就是获得他人服务器上的资源地址,绕过别人的资源展示页面,直接在自己的页面上向最终用户提供此内容.如,小站盗用大站的图片.音乐.视频.软件等 ...
- Nginx web 服务器 安装篇
Nginx介绍: 静态web服务器有Nginx .Apache .lighttpd等 目前国内用的最常见的就是Nginx 和Apache 是一个开源的.支持高性能.高并发的www服务和代理服务软件,N ...
随机推荐
- VMware16搭建Ubuntu22.04,更新为国内下载源,安装open-vm-tools,用SecureCRT远程连接
前期准备 1.VMware16(转载:下载安装流程:(https://www.bilibili.com/read/cv9694457)) 2.Ubuntu22.04----iso镜像文件(下载地址:( ...
- [题解][YZOJ50113] 枇杷树
简要题意 \(m\) 个操作,每次操作都会产生一个树的版本 \((\)从 \(0\) 开始\()\). 一次操作把 \(x_i\) 版本的树的点 \(u\) 和 \(y_i\) 版本的树的点 \(v\ ...
- [题解] trip
题目大意 给定一颗大小为 \(N\) 的树, \(1\)的度数不小于 \(2\) .每个点有一个颜色,要么为黑色要么为白色. 从 \(1\) 号点开始游走,计数器初始为 \(0\). 如果当前为黑点计 ...
- API Schema in kubernetes
目录 什么是schema 数据库中的schema Kubernetes中的schema 通过示例了解schema 什么是schema schema一词起源于希腊语中的form或figure,但具体应该 ...
- 好客租房21-react组件的两种创建方式(函数组件)
1使用函数创建组件 函数组件:使用js的函数或者箭头函数创建的组件 约定1:函数组件名称必须以 开头 约定2:函数组件必须有返回值 表示该组件的结构 如果返回值为null 表示不渲染任何内容 2.1使 ...
- CenterNet和CenterNet2笔记
CenterNet和CenterNet2笔记 CenterNet是基于anchor-free的一阶段检测算法 CenterNet2是CenterNet作者基于两阶段的改进 CenterNet(Obje ...
- yolov5训练自定义数据集
yolov5训练自定义数据 step1:参考文献及代码 博客 https://blog.csdn.net/weixin_41868104/article/details/107339535 githu ...
- 在windows下使用s3cmd和s3browser来管理amazon s3的笔记
S3是Amazon S3的简称,s3cmd是一款命令行工具用来管理s3,同时还有一款图形化的管理工具:s3 browser. 因为绝大多数用户都是在linux下管理s3,而我们的打包机是在window ...
- C#获取PLC信息 (KepServer)二
具体应用呢,不多说了,上代码,取长补短就是原创 using OPCAutomation; using System; using System.Collections.Generic; using S ...
- [react] 什么是虚拟dom?虚拟dom比操作原生dom要快吗?虚拟dom是如何转变成真实dom并渲染到页面的?
壹 ❀ 引 虚拟DOM(Virtual DOM)在前端领域也算是老生常谈的话题了,若你了解过vue或者react一定避不开这个话题,因此虚拟DOM也算是面试中常问的一个点,那么通过本文,你将了解到如下 ...