什么是nginx、nginx反向代理、负载均衡、nginx的代理转发流程、nginx的代理配置server以及Location匹配规则

目录

1.1nginx概念

1.1.1nginx概念

1.1.2反向代理

1.2为什么使用nginx

1.2.1为什么使用nginx

1.2.2nginx作用

1.3安装windows的nginx以及nginx常用命令

1.4nginx的代理配置server

1.4.1请求进入nginx

1.4.2启动nginx

1.4.3nginx配置文件

1.5nginx的代理转发流程

1.6Location匹配规则

1.6.1匹配规则

1.6.2优先级判断


1.1nginx概念

1.1.1nginx概念

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子 邮件(IMAP/POP3)代理,其特点是占有内存少,并发能力 强,免费开源。

1.1.2反向代理

正向代理:代理和客户端在一起,控制客户端向外网访问

反向代理:代理和服务端在一起控制服务器接收外网访问

什么是nginx、nginx反向代理、负载均衡、nginx的代理转发流程、nginx的代理配置server以及Location匹配规则_第1张图片

1.2为什么使用nginx

1.2.1为什么使用nginx

  • 集群和高并发

随着用户量增长,访问网络的手段的丰富(手机,电脑)导致服务端接收请求时,都是需要处理 高并发的。运行一个springboot的jar包web应用,并发能 力 200-500并发/秒,并不足以承受,提供目前互联网的并 发需求.。必然要引入集群,需要这种反向代理软件帮助服务端接收 并发请求,进行反向代理的计算,最终转发到不同服务器。

  • 负载均衡/入口代理

nginx接收高并发的请求,访问的入口.对入口代理的并发 是种考验.3万-10万之间(一个nginx 后端代理60个 tomcat)。

负载: 承受高并发

均衡: 平均分配高并发

1.2.2nginx作用

互联网框架中的作用

  • 负载均衡

负载:承受前方高并发访问(用户量大,访问次数多) 单 台的nginx 上限3-7万并发。

均衡:将大量并发按照需求进行分发到后端服务器。

nginx负载均衡、负载均衡策略/方式(轮询、权重、ip_hash)session共享问题_别抢我辣条kiang的博客-CSDN博客nginx负载均衡负载均衡是当有高并发(100万请求)请求访问服务器时,nginx作为入口服务器,先接受请求,然后经过 负载均衡的逻辑,将100万请求,"平均"分配到不同集群节点(负载均衡)。负载均衡策略/方式(轮询、权重、ip_hash)session共享使用集群中的session,由于是多个web容器,每个之间的session不互通,所以使用session会话会在集 群结构时失效,例如登录逻辑,会频繁失败,重新登录。https://blog.csdn.net/weixin_52878530/article/details/123511538

  • 动静分离

请求资源分动态资源和静态资源:

  1. 动态资源:程序的返回值,经过代码的资源 。
  2. 静态资源: html js css img等。

单独处理静态和动态资源的服务器,不是集中一起的。

1.3安装windows的nginx以及nginx常用命令

在Windows系统中安装nginx,nginx常用命令_别抢我辣条kiang的博客-CSDN博客nginx安装,nginx的常用命令,如 查看Nginx的版本号:nginx -V 启动Nginx:start nginx 快速停止或关闭Nginx:nginx -s stop 配置文件修改重装载命令:nginx -s reload 等https://blog.csdn.net/weixin_52878530/article/details/123480322

1.4nginx的代理配置server

配置nginx转发功能

www.pp.com---->localhost:8093

什么是nginx、nginx反向代理、负载均衡、nginx的代理转发流程、nginx的代理配置server以及Location匹配规则_第2张图片

1.4.1请求进入nginx

当浏览器访问www.pp.com 如何让请求到达nginx,知道nginx的服务器ip地址,知道 nginx占用接受请求的端口(80)

域名和ip地址映射,ip地址应该是nginx运行的ip地址(windows回环地址127.0.0.1)

配置hosts文件,将域名和ip映射。

127.0.0.1 www.pp.com 

1.4.2启动nginx

在nginx根目录下打开cmd窗口输入start nginx启动nginx

最好使用任务管理器,观察nginx是否正常启动,个数是否是2

什么是nginx、nginx反向代理、负载均衡、nginx的代理转发流程、nginx的代理配置server以及Location匹配规则_第3张图片

 www.pp.com 可以访问到nginx的首页 即启动完成。

1.4.3nginx配置文件

  • http属性配置

nginx-1.21.3/conf文件夹中,有一个文件nginx.conf

什么是nginx、nginx反向代理、负载均衡、nginx的代理转发流程、nginx的代理配置server以及Location匹配规则_第4张图片

什么是nginx、nginx反向代理、负载均衡、nginx的代理转发流程、nginx的代理配置server以及Location匹配规则_第5张图片

  • server虚拟服务器

nginx作为http服务器,可以开启多个虚拟服务器(类似tomcat配置host标签,一个 host标签对应一个域名),绑定监听达到nginx的请求. 

什么是nginx、nginx反向代理、负载均衡、nginx的代理转发流程、nginx的代理配置server以及Location匹配规则_第6张图片

 server包含在http大括号下

  1. listen:监听端口,表示nginx占用的端口,多个server可以监听同一个端口 • server_name:监听判断请求域名 这两个值能够将到达nginx所有请求区分开。
  2. server_name:监听判断请求域名 这两个值能够将到达nginx所有请求区分开。
  3. location /:匹配url路径 /表示统配,只要请求通过域名和端口能够匹配,就一定会 到达这个location。
  4. root:指向一个nginx的本地文件夹 可以使用相对路径,也可以使用绝对路径,如果 不适用绝对路径(d:/a/b),相对于nginx家目录。
  5. index:这个index只能配合location /使用,别的不常见.表示默认首页。

nginx中所谓的请求url路径,指的是去掉域名和端口剩余的字符串。

1.5nginx的代理转发流程

请求开始地址:localhost:80(路径=/)

|访问本机的80端口 |nginx在本机占用监听80端口。

|多个server同时判断端口和域名,交给80 localhost这个server处理。

|进入server 开始判断路径匹配location / 匹配到了。

|进入location计算 找到root路径nginx家目录中html里面有2个html页面。

|index指定,如果请求没有携带资源具体值,直接访问默认你首页 所以本次请求,经过nginx这一系列计算,得到结果就是默认nginx欢迎页面。

1.6Location匹配规则

访问到nginx的请求,可以对server做判断端口监听和域名匹配,一旦成功,就要根据 uri地址比对location中的匹配规则,实际 location有很多的匹配的细节.在一个server中可以有多个location,实现不同访问 资源的不同后端服务器处理(动静分离)。

1.6.1匹配规则

精确匹配(=):uri地址必须等于location中定义的值

  例如 location ^~/image

有修饰的字符串前缀匹配(^~): uri地址以前缀开始

  例如 location /image

无修饰的字符串前缀匹配: uri地址以前缀开始

  例如 location /image

和有修饰的区别在于 有修饰的优先级高于无修饰的字符串前缀匹配,并且有修 饰的字符串一旦匹配到,将停止向下匹配其他优先级低于自己类型的匹配规则。

正则匹配

不区分大小写的正则:

 例如:location ~*正则表达式

区分大小写正则:

 例如:location ~正则表达式

通配 /

 例如:location /

不同匹配规则的存在使得同一个server括号内可以存在多个location

1.6.2优先级判断

○ 根据规则介绍顺序,优先级从上到下

   精确匹配>有修饰的前缀>无修饰的前缀>正则匹配>通配

○ 同一种匹配规则有包含关系时

  字符串前缀匹配有包含关系时,以最大前缀匹配长度为优先级最高来判断 (越精确,优先级越高)

  正则有包含关系时,配置在上的location的优先级高

你可能感兴趣的:(nginx,服务器,运维)