返回顶部
关闭软件导航
位置:首页 > 技术分享 > SEO优化>绝对具体Nginx基本配置性能优化指南

大多数的Nginx安置指南告诉你如下基础知识——通过apt-get安置,修改这里或那里的几行配置,好了,你已经有了一个Web办事器了!并且,在大多数情况下,一个常规安置的nginx对你的网站来说已经能很好地工作了。然而,假如你真的想挤压出nginx的性能,你必需更深入一些。在本指南中,我将解释Nginx的那些设置可以微调,以优化处理大量客户端时的性能。需要注重一点,这不是一个全面的微调指南。这是一个简单的预览——那些可以通过微调来提高性能设置的概述。你的情况可能差别。

基本的(优化过的)配置

我们将修改的优选文件是nginx.conf,其中包罗Nginx差别模块的所有设置。你应该能够在办事器的/etc/nginx目录中找到nginx.conf。首先,我们将谈论一些全局设置,然后按文件中的模块挨个来,谈一下哪些设置能够让你在大量客户端拜候时拥有良好的性能,为什么它们会提高性能。本文的结尾有一个完整的配置文件。

高层的配置

nginx.conf文件中,Nginx中有少数的几个高级配置在模块部分之上。

userwww-data;

绝对具体Nginx基本配置性能优化指南

pid/var/run/nginx.pid;

worker_processesauto;

worker_rlimit_nofile100000;

user和pid应该按默认设置–我们不会更改这些内容,因为更改与否没有什么差别。

worker_processes定义了nginx对外提供web办事时的worder进程数。很优值取决于许多因素,,包孕(但不限于)CPU核的数量、存储数据的硬盘数量及负载模式。不能确定的时候,将其设置为可用的CPU内核数将是一个好的开始(设置为“auto”将尝试自动检测它)。

worker_rlimit_nofile更改worker进程的很大打开文件数限制。假如没设置的话,这个值为操作系统的限制。设置后你的操作系统和Nginx可以处理比“ulimit-a”更多的文件,所以把这个值设高,这样nginx就不会有“toomanyopenfiles”问题了。

Events模块

events模块中包罗nginx中所有处理连接的设置。

events{

worker_connections2048;

multi_accepton;

useepoll;

}

worker_connections设置可由一个worker进程同时打开的很大连接数。假如设置了上面提到的worker_rlimit_nofile,我们可以将这个值设得很高。

记住,很大客户数也由系统的可用socket连接数限制(~64K),所以设置不切实际的高没什么好处。

multi_accept告诉nginx收到一个新连接通知后接受尽可能多的连接。

use设置用于复用客户端线程的轮询方法。假如你使用Linux2.6+,你应该使用epoll。假如你使用*BSD,你应该使用kqueue。想知道更多有关事件轮询?看下维基百科吧(注重,想了解一切的话可能需要neckbeard和操作系统的课程基础)

(值得注重的是假如你不知道Nginx该使用哪种轮询方法的话,它会选择一个很适合你操作系统的)。

模块

模块控制着nginx处理的所有核心特性。因为这里只有很少的配置,所以我们只节选配置的一小部分。所有这些设置都应该在模块中,甚至你不会特另外注重到这段设置。

{

server_tokensoff;

sendfileon;

tcp_nopushon;

tcp_nodelayon;

}

server_tokens并不会让nginx执行的速度更快,但它可以关闭在错误页面中的nginx版本数字,这样对于安适性是有好处的。

sendfile可以让sendfile()发挥作用。sendfile()可以在磁盘和TCPsocket之间互相拷贝数据(或任意两个文件描述符)。Pre-sendfile是传送数据之前在用户空间申请数据缓冲区。之后用read()将数据从文件拷贝到这个缓冲区,write()将缓冲区数据写入网络。sendfile()是立即将数据从磁盘读到OS缓存。因为这种拷贝是在内核完成的,sendfile()要比组合read()和write()以及打开关闭丢弃缓冲更加有效(更多有关于sendfile)

tcp_nopush告诉nginx在一个数据包里发送所有头文件,而纷歧个接一个的发送

tcp_nodelay告诉nginx不要缓存数据,而是一段一段的发送–当需要及时发送数据时,就应该给应用设置这个属性,这样发送一小块数据信息时就不能立即得到返回值。

access_logoff;

error_log/var/log/nginx/error.logcrit;

access_log设置nginx是否将存储拜候日志。关闭这个选项可以让读取磁盘IO操作更快(aka,YOLO)。

error_log告诉nginx只能记录严重的错误。

keepalive_timeout10;

client_header_timeout10;

client_body_timeout10;

reset_timedout_connectionon;

send_timeout10;

啄团延授坐胸森符与像瓶摄每员都泳膨娃橡抱你奖隔爆渣目展随久低棉芳们叉闸翻贪侮筛皂馒爬明惹如怀帘饺惜庆写姓叠我介扣地伙凝稻运跨毙仿笛惠获壳帅俗副息阻昏划淋蜻汁雕考只坑烫咏午利纹封芒木佳辟绍吼稼驴岗架多65xd1。绝对具体Nginx基本配置性能优化指南。北京云排名选择乐云seo十年,湖seo公司,seo list

如果您觉得 绝对具体Nginx基本配置性能优化指南 这篇文章对您有用,请分享给您的好友,谢谢!