| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Nginx 性能优化 -> 正文阅读 |
|
[系统运维]Nginx 性能优化 |
目录1、调整 worker 进程数nginx 有一个 master 进程和多个 work 进程。master 进程的主要目的是读取和评估配置,并维护 work 进程。work 进程对请求进行实际处理。在高并发、高访问的场景下,需要提前启动更多的 nginx 进程,以保证快速响应,处理大量并发用户的请求。 现在的服务器基本上都是多线程和多进程的,而 Nginx 默认不允许处理多个工作负载,因此你可以修改配置文件中
如何在 Nginx 服务器上配置?
2、调整 worker 连接数
而 Nginx 默认的 1024 在生产环境来说是比较小的,因此需要调整该参数。该配置参数位于 events 事件中,Linux 中 nginx 采用 epoll 的 I/O 复用模型,FreeBSD 中使用 kqueue 的 I/O 复用模型,Solaris 中使用 /dev/poll 的 I/O 复用模型,Windows中使用 ICOP 等。 因此,我们需要针对不同的系统类型来选择不同的事件处理模型。我用的是 CentOS 7,所以把 nginx 的事件处理模型调整为 epoll 模型。 如何在 Nginx 服务器上配置?
还有一个参数也是需要注意的,就是 当然,这个 work 连接数也不是说可无限设置大,它和系统自身 因此,上面的 20240 的连接数就会占用 20240*328/1024/1024 = 6M 大小内存。 在来看看 worker 进程最大打开文件数,该值其实在我们设置系统最大打开文件数的时候已经指定(*/指定用户),如下所示:
因此,只需要设置
3、调整 work 进程最大打开文件数接下来调整配置 nginx 的 worker 进程的最大打开文件数,控制连接数的参数是
如何在 Nginx 服务器上配置?
需要注意: 4、开启高效文件传输模式
如何选择?下面注释写得比较清楚 如何在 Nginx 服务器上配置?
5、限制文件上传大小
如何在 Nginx 服务器上配置?
nginx 对上传文件大小默认为 1m 大小,如果很大,还要适当调整上传超时时间。
作为代理时的超时时间:
最终配置参考:
6、开启 gzip 压缩gzip 压缩模块提供了压缩文件内容的功能,在用户请求的内容发送到用户客户端之前,nginx 服务器会根据一些具体的策略执行压缩策略,从而节省网站的出口带宽,加快数据传输效率,提升用户体验。
7、本地缓存静态资源每个网站都有页面、图像和其他内容,这些内容在访问者在网站上的会话期间基本保持不变。现代网页上几乎 30% 的数据是静态的,应该缓存这些内容以提高 Nginx 的性能。 优点:
如何在 Nginx 服务器上配置?
8、调整缓冲区大小
9、尽可能少使用 if 检查 server_name 语句你想想,每一个请求连接进来都要进行一次 if 判断,这势必会增加 web 服务器开销,尤其是在十万/百万并发场景下。因此,你也可以在 if 语句层面来优化。 例如:server_name 指定 hello.com 和 www.hello.com 两个域名,当 Nginx 收到请求时,无论请求的是哪个子域,如果始终对 if 指令进行评估,那效率都是很低的。
10、避免过多正则表达
11、return 代替 rewrite 实现重定向
12、使用 try_files 指令确认文件是否存在
13、设置 keepalive_timeout一般地,在我们的 web 网站中,为了避免同一个客户长时间占用连接,造成资源浪费,可设置相应的超时时间,实现对连接访问时间的控制。
企业生产环境中,我们一般设置为该值就可以了(当然也需要根据实际情况来调整)。 14、日志文件轮转随着业务量的增加,web 服务的日志访问量也越来越大,久而久之将会耗尽系统磁盘空间。因此,日志轮转就显得非常重要了,有关日志轮转的相关知识的可查看我之前的博文《Linux系统之计划任务及日志轮转》。
日志轮转可配合计划任务来实现自动轮转!! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 17:53:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |