目录
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优先级判断
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子 邮件(IMAP/POP3)代理,其特点是占有内存少,并发能力 强,免费开源。
正向代理:代理和客户端在一起,控制客户端向外网访问
反向代理:代理和服务端在一起控制服务器接收外网访问
随着用户量增长,访问网络的手段的丰富(手机,电脑)导致服务端接收请求时,都是需要处理 高并发的。运行一个springboot的jar包web应用,并发能 力 200-500并发/秒,并不足以承受,提供目前互联网的并 发需求.。必然要引入集群,需要这种反向代理软件帮助服务端接收 并发请求,进行反向代理的计算,最终转发到不同服务器。
nginx接收高并发的请求,访问的入口.对入口代理的并发 是种考验.3万-10万之间(一个nginx 后端代理60个 tomcat)。
负载: 承受高并发
均衡: 平均分配高并发
互联网框架中的作用
负载:承受前方高并发访问(用户量大,访问次数多) 单 台的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
请求资源分动态资源和静态资源:
单独处理静态和动态资源的服务器,不是集中一起的。
在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
配置nginx转发功能
www.pp.com---->localhost:8093
当浏览器访问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 |
在nginx根目录下打开cmd窗口输入start nginx启动nginx
最好使用任务管理器,观察nginx是否正常启动,个数是否是2
www.pp.com 可以访问到nginx的首页 即启动完成。
nginx-1.21.3/conf文件夹中,有一个文件nginx.conf
nginx作为http服务器,可以开启多个虚拟服务器(类似tomcat配置host标签,一个 host标签对应一个域名),绑定监听达到nginx的请求.
server包含在http大括号下
nginx中所谓的请求url路径,指的是去掉域名和端口剩余的字符串。
请求开始地址:localhost:80(路径=/)
|访问本机的80端口 |nginx在本机占用监听80端口。
|多个server同时判断端口和域名,交给80 localhost这个server处理。
|进入server 开始判断路径匹配location / 匹配到了。
|进入location计算 找到root路径nginx家目录中html里面有2个html页面。
|index指定,如果请求没有携带资源具体值,直接访问默认你首页 所以本次请求,经过nginx这一系列计算,得到结果就是默认nginx欢迎页面。
访问到nginx的请求,可以对server做判断端口监听和域名匹配,一旦成功,就要根据 uri地址比对location中的匹配规则,实际 location有很多的匹配的细节.在一个server中可以有多个location,实现不同访问 资源的不同后端服务器处理(动静分离)。
○ 精确匹配(=):uri地址必须等于location中定义的值
例如 location ^~/image
○ 有修饰的字符串前缀匹配(^~): uri地址以前缀开始
例如 location /image
○ 无修饰的字符串前缀匹配: uri地址以前缀开始
例如 location /image
和有修饰的区别在于 有修饰的优先级高于无修饰的字符串前缀匹配,并且有修 饰的字符串一旦匹配到,将停止向下匹配其他优先级低于自己类型的匹配规则。
○ 正则匹配
不区分大小写的正则:
例如:location ~*正则表达式
区分大小写正则:
例如:location ~正则表达式
○ 通配 /
例如:location /
不同匹配规则的存在使得同一个server括号内可以存在多个location
○ 根据规则介绍顺序,优先级从上到下
精确匹配>有修饰的前缀>无修饰的前缀>正则匹配>通配
○ 同一种匹配规则有包含关系时
字符串前缀匹配有包含关系时,以最大前缀匹配长度为优先级最高来判断 (越精确,优先级越高)
正则有包含关系时,配置在上的location的优先级高