Nginx(全使用)

Nginx是一个轻量级的web服务器,常用于存放静态资源和执行反向代理。反向代理可解决跨域问题,通过proxy_pass配置实现请求转发。负载均衡通过不同策略分发请求至多个服务端,如轮询。集群部署确保高可用性,OpenResty结合Lua实现更复杂的逻辑处理。

Nginx

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

文档的内部结构:
window里面的文档文件。对应的linux上面也是一样的。

 

 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文件在:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值