Nginx
Nginx是一个与Tomcat一样的web服务器,但是他是轻量级的。所以我们基本上会把静态资源存放在Nginx里面去。
文档的内部结构:

Nginx因为是一个web服务器。那么对应的也就是可以进行地址的重定向操作:其实也就是正向代理与反向代理。
正向代理:
也就是客户端与服务器是相互知道彼此的ip地址的,代理器只能进行一个转发请求的操作。

反向代理:
更多就就是客户端不知道服务器的ip地址。只知道代理器的ip地址,而发送亲求给代理器是,代理器会在内部机型一个服务器的ip地址的选择。

而反向代理基本上是可以解决浏览器的跨域浏览问题(DNS异常)----也就是浏览器发送端口不同的请求时,因为浏览器的机制问题而不会接收到响应。
那如果进行反向代理的动作,通过修改配置文件信息!
配置文件:

转发的路径主要是看location与root的结合。
静态资源访问:
1.精确匹配(只要找到这个资源的话,就不会在去访问其他的location):= /资源

2.通用匹配(如果找不到这个资源的话,就会去访问其他的location)/资源
默认情况下如果不是发送请求的话,会去访问静态资源index.html
root资源:进行拼接root

alias资源:

反向代理(proxy_pass)

此时反向代理到8080这个端口里面去。也就是说82的所有请求都转换到8080这个端口
注意:此时发送给nginx的所有/后的请求都会拼接到8080:之后然后发送请求给服务器。
当时假设一下,如果location 后面接的是/SpringBootReful的话。此时的请求应该是怎么样的?
两种情况:
一、proxy_pass后面除了端口位置外,没有再接其他资源。
(1)端口位置后面带 " / " ——则发送请求时,去掉location后面接的url就是拼接的资源。

(2)端口位置后面不带 " / " ——发送请求时,直接把location后面接的url进行拼接。

二、proxy_pass后面除了端口位置外,再接其他资源。(也就是无论如何也就是把location后面接的url去掉之后剩下的再拼接上去。)
(1)其他资源后面带 " / " ——则发送请求时,去掉location后面接的url就是拼接的资源。

(2)其他资源后面不带 " / " ——则发送请求时,去掉location后面接的url就是拼接的资源。

负载均衡:
假设相同的服务,有多个端口,为了能够减轻服务器的压力(避免请求只指向一个服务),所以做反向代理的时候,都会进行负载均衡。
一、只针对链接来进行负载均衡:
(1)、对服务集群进行一个命名值:

此时。请求到nginx的时候就会对上面的服务集群,进行一个负载均衡的条件。而默认的负载均衡条件是轮询条件。
(2)、改变负载均衡条件
那如何改变负载均衡条件咧?
二、只针对占位符数据来进行负载均衡:
nginx会把占位符里面的数据,进行hash换算,换算之后就会在下一次进行访问的时候根据hash值来访问对应的端口,也就是假设占位符里面的数据是101 ,此时换算的hash指向的ip地址是8085,下一次访问的时候也会在8085那里访问!
nginx的配置文件设置:

我们先准备两个项目端口,一个是8085 一个是8086.而地址是本机地址。
8085的
8086的

此时我们尝试发送请求给nginx。分别发送1和2,来查看一下响应结果。
![]()
此时发送占位符为1的时候。范围到8086端口,而2的时候就是8085端口。
但是如果我们重复发送1的时候,他永远都只会请求到8086端口,这个就是根据占位符进行hash转换之后做负载均衡!
集群部署:
因为当只有一个nginx做反向代理的,会出现当nginx宕机之后,无法访问到请求,所以我们都会进行集群部署。
而做集群部署的话,就需要涉及到一个技术——!
具体连接请看这里:
多级缓存:
我们都知道nginx主要的功能是,做反向代理,以及静态资源存放点。但是我们需要知道的是,nginx还可以做缓存的操作,也就是能直接在nginx上面查询数据库来获取数据,就不需要先经过tomcat,在到redis再到数据库这样来,可以直接再nginx上面进行。
而做集群部署的话,就需要涉及到一个技术——OpenResty!
具体连接请看这里:https://blog.youkuaiyun.com/weixin_54406708/article/details/131889900
而再学习OpenResty的前提之前,我们需要学习一门语言:Lua!
因为nginx只是发送请求的动作,那如何完成查阅数据库逻辑,就需要Lua文件!
具体连接请看这里:Lua——(nginx内部逻辑编程语言。)_秃头小秃鹫的博客-优快云博客
拓展:
用docker来安装nginx的时候,nginx的容器内部,对应的nginx.conf文件在:
![]()
而对应的html文件在:
![]()
Nginx是一个轻量级的web服务器,常用于存放静态资源和执行反向代理。反向代理可解决跨域问题,通过proxy_pass配置实现请求转发。负载均衡通过不同策略分发请求至多个服务端,如轮询。集群部署确保高可用性,OpenResty结合Lua实现更复杂的逻辑处理。
1万+

被折叠的 条评论
为什么被折叠?



