Nginx转发请求过程解析

Nginx转发请求过程解析,第1张

How nginx processes a request

这种配置情况下,第一个server就是默认配置。请求通过Header中的"Host"来匹配到对应的服务,如果没有匹配到任何server_name,则路由到默认server(第一个server)处理。

通过给 listen 增加 default_server 参数明确指定哪个server是默认server( default_server 参数从0.8.21版本开始有效)。 注意: default_server 是用作用于端口的,而不是 server_name 的

可以定义一个 server_name 属性为空的server来处理没有Host的请求(从0.8.48版本开始, server_name 默认是"",之前的版本默认是hostname)。

这个配置标识请求Header中Host为空时,会返回“444”响应码,然后关闭链接。

请求Header中的Host匹配到 server_name 后,会转发到IP+端口上,如果为匹配到 server_name ,如前面所述,会转发到第一个server来处理请求,当然也可以通过 default_server 属性来指定端口的默认server。

如上配置,处理请求流程如下:

请求进来时,nginx会按照如下步骤来匹配请求(匹配请求只用URI不带参数的部分)

spring web service系列1

spring web service系列2

spring web service系列3

maven配置文件settings.xml详解

Nginx中的负载均衡算法

Nginx upstream指令配置说明

Nginx中虚拟服务器server指令配置说明

Nginx中proxy_pass/proxy_redirect/proxy_set_header配置说明

Nginx中ngx_http_core_module相关指令配置说明

Java自带JVM监控工具jstat使用详细说明

Java自带JVM监控工具jps使用详细说明

Java自带故障分析工具jmap工具使用说明

Java自带故障分析工具jhat工具使用说明

原因:是Nginx配置文件中,超时时间太短了:proxy_connect_timeout20。。在Nginx的默认配置是:在客户端请求服务器超时的情况下,Nginx会自动转发该请求到另外一台服务器上,这是Nginx的一种容错机制,所以Nginx的访问日志中会出现同一条请求而两台服务器都执行了一遍的情况,这样以来,程序如果没有做幂等性操作的话数据库会出现两条记录。

Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。

Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。

Nginx的稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。

1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。

2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。

4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。

5、location块:配置请求的路由,以及各种页面的处理情况。

Nginx常用功能。

1、Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理。

Nginx在做反向代理时,提供性能稳定,并且能够提供配置灵活的转发功能。Nginx可以根据不同的正则匹配,采取不同的转发策略,比如图片文件结尾的走文件服务器,动态页面走web服务器,只要你正则写的没问题,又有相对应的服务器解决方案。

。并且Nginx对返回结果进行错误页跳转,异常判断等。如果被分发的服务器存在异常,他可以将请求重新转发给另外一台服务器,然后自动去除异常服务器。

2、负载均衡

Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,只有你想不到的没有他做不到的啦,你可以参照所有的负载均衡算法,给他一一找出来做下实现。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/647297.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-21
下一篇2023-07-21

发表评论

登录后才能评论

评论列表(0条)

    保存