Nginx高并发负载的优化(1)

简介: 原文见:http://blog.martinfjordvald.com/2011/04/optimizing-nginx-for-high-traffic-loads/ 之前我谈过如何优化Nginx并使之高性能,我要说明,那些从Apache迁移到Nginx的用户,你们最终会发现,Apache的调整配置和优化技巧对于Nginx来说并不适用。

原文见:http://blog.martinfjordvald.com/2011/04/optimizing-nginx-for-high-traffic-loads/

之前我谈过如何优化Nginx并使之高性能,我要说明,那些从Apache迁移到Nginx的用户,你们最终会发现,Apache的调整配置和优化技巧对于Nginx来说并不适用。

我要说明,你不能像优化Apache那样去优化Nginx。Nginx没有像负载减半或让PHP运行加倍的选项。好消息是,Nginx本身已经优化的很好了。当决定使用Nginx,且使用apt-get安装它时,你得到的就是优化后的版本。(注意,Nginx的库更新比较频繁,WIKI页面上通常有最新的库)
http://wiki.nginx.org/Install

也即,Nginx有很多影响其行为的选项,所有这些选项的默认值并不都是针对高并发场景进行优化的。我们还需要考虑Nginx运行的平台,针对OS的限制进行优化。

总得来说,我们不能优化单个链接的载入时间,我们能确保Nginx有理想的优化环境用于处理高负载情况。当然,所指的高并发指的是每秒数百个请求。

首先,我们要清楚Nginx可以用于大多数平台如Linux、MacOS、FreeBSD、Solaris和Windows。大多数操作系统内部实现了高性能的基于事件的Polling方法,遗憾的是,Nginx只支持上面平台中的四个。我个人倾向于FreeBSD。

要说明Nginx并不适合Windows系统,在Windows服务器上没有理由要使用Nginx。因为Windows有不同的事件Polling处理机制,Nginx的作者决定不支持Windows。

Nginx的第二大限制:也是与OS相关。打开Shell环境,用su命令切换到Nginx的运行用户,再运行命令“ulimit -a”,有一些值会限制Nginx不能超载。很多系统默认的打开文件数是有限制的,有些系统的限制是1024.如果Nginx运行在这样的系统上,那么就会受到限制,日志记录中可能会出现(错误24:Too many open file打开了太多的文件),并返回一个错误给客户端。
Nginx本质上处理的文件数是可以超过1024个的,你需要修改相应的设置。

有两种实现方法:一是用ulimit设置限制;二是使用worker_rlimit_nofile定义期望打开的文件描述符限制。

目录
相关文章
|
应用服务中间件 nginx
nginx优化:URI过长或request header过大导致400或414报错
当出现URI过长或请求头过大导致400或414报错时,可以通过以下方式对Nginx进行优化: 1. 调整client_max_body_size参数:该参数用于限制请求体的大小。默认情况下,Nginx的client_max_body_size参数设置为1M。如果请求体超过这个大小,Nginx会返回400错误。您可以根据实际需求适当增加这个值,例如设置为10M或更大。 ``` http { client_max_body_size 10M; } ``` 2. 调整large_client_header_buffers参数:该参数用于调整请求头缓冲区的大
3815 0
|
1月前
|
缓存 前端开发 JavaScript
|
1月前
|
缓存 监控 负载均衡
nginx相关配置及高并发优化
Nginx的高并发优化是一个综合性的过程,需要根据具体的业务场景和硬件资源量身定制。以上配置只是基础,实际应用中还需根据服务器监控数据进行持续调整和优化。例如,利用工具如ab(Apache Benchmarks)进行压力测试,监控CPU、内存、网络和磁盘I/O等资源使用情况,确保配置的有效性和服务的稳定性。
105 0
|
3月前
|
负载均衡 应用服务中间件 网络安全
Django后端架构开发:Nginx服务优化实践
Django后端架构开发:Nginx服务优化实践
58 2
|
3月前
|
缓存 前端开发 Java
"揭秘!SpringBoot携手Nginx,性能飙升秘籍大公开:轻松掌握配置优化,让你的应用快如闪电!"
【8月更文挑战第11天】随着微服务架构的发展,SpringBoot成为构建RESTful API的首选,Nginx则作为高性能的反向代理服务器提升应用性能。本文将探讨两者如何协同工作,包括Nginx的负载均衡策略、静态资源缓存及数据压缩配置;同时讨论SpringBoot的线程池优化、缓存策略及性能监控。通过这些方法,帮助开发者显著提高系统的整体性能和可用性。
144 1
|
3月前
|
缓存 负载均衡 Java
SpringBoot 与 Nginx 配置优化:性能拉满的关键学习方法
【8月更文挑战第1天】在现代Web开发领域,SpringBoot以其快速启动、简化配置的特性成为众多开发者的首选框架,而Nginx则以其高性能的HTTP和反向代理服务器功能著称。将两者结合,并通过精细的配置优化,可以显著提升Web应用的性能与稳定性。以下是为您学生定制的SpringBoot与Nginx配置优化的学习方法与研究路径。
76 1
|
4月前
|
缓存 负载均衡 应用服务中间件
Nginx反向代理优化
教你如何做好Nginx反向代理优化
105 5
|
5月前
|
监控 前端开发 应用服务中间件
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽(2)
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽
82 1
|
5月前
|
负载均衡 前端开发 应用服务中间件
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽(1)
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽
177 1
|
6月前
|
缓存 负载均衡 安全
深入探索Nginx高性能Web服务器配置与优化
【5月更文挑战第7天】本文深入探讨了Nginx的配置与优化,重点介绍了基础配置参数如`worker_processes`、`worker_connections`和`keepalive_timeout`,以及优化策略,包括使用epoll事件驱动模型、开启gzip压缩、启用缓存、负载均衡和安全配置。此外,还提到了性能调优工具,如ab、nginx-stats和nmon,以助于提升Nginx的性能和稳定性。