当前位置:首页 > nginx > 正文

nginx高性能配置

  • nginx
  • 2024-05-03 05:44:57
  • 9422

壹、Nginx运行原理和配置详解(个人总结笔记)
话不多说,拿起键盘就做吧!正如他们所说,如果你知道它是什么,你就知道为什么会这样。 我总结了Nginx的运行原理和配置的详细解释,以方便理解和后续回顾。
首先让我们看一下这张图片。
nginx启动后,会有一个主进程和多个工作进程。 主流程用于管理工作流程。 工作进程处理请求。 一个请求只能在一个工作进程中处理。 可以设置工作进程的数量。 一般我们会将其设置为与机器上的CPU核心数一致。 造成这种情况的原因与nginx的进程模型和事件处理模型密不可分,导致进程争夺CPU资源,导致不必要的上下文切换。
目前PHPWEB服务器最好的方法之一是:Nginx+FastCGI(解决CGI同时重复分叉问题)+PHP-FPM(处理PHP-CGI进程)。 nginx如何将请求发送给PHP进行解释和处理?这个过程是如何完成的呢?稍后我们再看参数配置。
代理、反向代理、负载均衡是Nginx的常用功能。
HTTP代理、反向代理:是Web服务器最常用的功能之一,尤其是反向代理。 如果你仍然像小米之前那样无法区分代理和反向代理,下面的图片将帮助你弄清楚。
他们的区别在于,第一个知道我要找的人,并且知道地址在哪里。 代理服务器根据这个地址发出请求,然后返回它告诉我的内容。 第二是我知道我想和谁说话,但我不知道地址在哪里,我不想为此担心。 你可以自己找代理服务,帮我回复他想说的话。
负载均衡:实际上它也是一种反向代理。 负载均衡、热备份等它们实际上属于高可用性类别。 Nginx提供了两种负载均衡策略:集成策略和扩展策略。 综合策略有轮询、加权轮询、Iphash等。 这种扩张策略既富有想象力又令人难以想象。 没有什么你想不到的,我做不到的。 您可以参考所有负载均衡算法来实现。 思考一个问题,IPhash真的能解决会话共享问题吗?
让我们简单看一下两个配置示例。
此配置将请求转发到mysvr定义的服务器列表。 注意proxy_pass配置。 其实这也是一种负载均衡的配置。 如下:
访问网站时,由于配置了proxy_pass地址,所以所有请求都会先经过nginx反向代理服务器,当服务器将请求转发到目的主机时,会采用上游地址。 读取tomcatsever1的内容。 读取部署策略,将tomcat1的权重配置为3,则nginx会将大部分请求发送到49号服务器上的tomcat1,即8080端口;当然,这个条件是服务器硬件指标处理请求能力1、2。
负载均衡器配置中还有其他相关参数。 这只是一个示例,不再详细描述。
可以认为fastcgi_pass的配置非常关键,串联Nginx+FastCGI+PHP-FPM。 此配置会将所有PHP请求传递到配置了fastcgi_pass的PHP-FPM进行处理。 该位置分别决定每个请求URL将如何通过常规过滤和转发配置进行转发。 location/表示默认请求,location~\.php(.*)$表示所有PHP脚本请求都转发给FastCGI处理。 使用默认的FastCGI配置。
上面的配置指定这些静态文件应该由nginx自己处理。
NGINX负载均衡可以用来实现很多服务的负载均衡。 例如,对于Redis服务的负载均衡,只需配置上游IP列表,然后配置proxy_pass代理即可。 那么除了NGINX之外,还可以用什么来实现负载均衡呢?
根据7层OSI模型,负载均衡可以分为:
1)二层负载均衡(通常使用虚拟Mac地址,外部请求虚拟MAC地址,收到负载均衡器后,分配后端实际响应的MAC地址);
2)三级负载均衡(一般采用虚拟IP地址的方法,外部请求虚拟IP地址,负载均衡器接收并分发客户端的实际IP地址响应);
3)四级负载均衡(基于三个负载均衡器,使用ip+port接收请求然后转发4)七级负载均衡(根据URL或虚拟IP,名称主机收到请求后转发给对应的处理服务器)。
其中最常见的就是四层和七层负载均衡,大家想一想,NGINX属于什么类型的负载均衡呢?
了解负载均衡架构


贰、nginx配置详解是怎么样的?

Nginx配置文件主要分为四个部分:main(全局配置)、server(主机设置)、upstream(上游服务器设置)、location(URL后面对应具体位置的设置)。 每个部分包含几条指令。 。

Nginx功能丰富,可以用作HTTP服务器、反向代理服务器和邮件服务器。 支持FastCGI、SSL、VirtualHost、URLRewrite、Gzip等功能。

并且它支持许多第三方模块扩展,稳定性、功能集、示例配置文件和低系统资源消耗使其优于其他产品。 在全球活跃网站中其使用率为12.18%。 世界。 大约2220万个网站。

Nginx配置注意事项

Nginx可以对不同的文件进行不同的缓存处理,配置灵活,支持FastCGI_Cache,主要用于FastCGI。 。 动态程序被缓存。 配合第三方ngx_cache_purge,可以添加和删除指定的URL缓存内容进行管理。

事件块:该配置会影响nginx服务器或与用户的网络连接。 每个进程有最大连接数、选择哪种基于事件的模型来处理连接请求、是否允许同时接受多个网络连接、启用多个网络连接的序列化等。

上一篇:查找nginx配置文件

下一篇:linux nginx配置