栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

1.1nginx概念 1.1.1nginx概念

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

1.1.2反向代理

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

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

1.2为什么使用nginx 1.2.1为什么使用nginx

集群和高并发

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

负载均衡/入口代理

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

负载: 承受高并发

均衡: 平均分配高并发

1.2.2nginx作用

互联网框架中的作用

负载均衡

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

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

动静分离

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

    动态资源:程序的返回值,经过代码的资源 。静态资源: 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

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.1www.pp.com 
1.4.2启动nginx

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

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

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

1.4.3nginx配置文件

http属性配置

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

server虚拟服务器

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

 server包含在http大括号下

    listen:监听端口,表示nginx占用的端口,多个server可以监听同一个端口 • server_name:监听判断请求域名 这两个值能够将到达nginx所有请求区分开。server_name:监听判断请求域名 这两个值能够将到达nginx所有请求区分开。location /:匹配url路径 /表示统配,只要请求通过域名和端口能够匹配,就一定会 到达这个location。root:指向一个nginx的本地文件夹 可以使用相对路径,也可以使用绝对路径,如果 不适用绝对路径(d:/a/b),相对于nginx家目录。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的优先级高

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/762640.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号