如何优化Nginx配置 新手篇

什么是Nginx?

Nginx是有时难以忍受的Apache 2的一种快速,轻量级的替代品。但是,就像必须对任何类型的服务器或软件进行调整一样,Nginx才能帮助获得最佳性能。

优化需求:

1.完成初始设置的Debian7

2.必须具有正在运行的全新安装和配置的Nginx服务器。

3.对Linux基础有更好的了解。

我们需要调整的前两个变量是工作进程和工作连接。在进入每种设置之前,我们需要了解这些指令所控制的内容。worker_processes指令是Nginx 的坚强后盾。该指令负责让我们的虚拟服务器知道绑定到正确的IP和端口后会产生多少工作线程。通常每个内核运行1个工作进程。超出此限制的任何内容都不会损害您的系统,但通常会留下闲置的进程。

要弄清楚将worker_processes设置为多少,只需查看一下设置中的核心数量即可。如果您使用的是DigitalOcean 512MB设置,则它可能是一个核心。如果最终将尺寸快速调整为更大的设置,则需要再次检查内核并相应地调整此数字。我们可以通过输入cpuinfo来完成此操作:

grep processor /proc/cpuinfo | wc -l

假设这返回值1。这就是我们计算机上的内核数量!

该worker_connections命令告诉我们的工作进程Nginx可以同时为多少人提供服务。默认值为768。但是,考虑到每个浏览器通常每个服务器至少打开2个连接,因此这个数目可以减少一半。这就是为什么我们需要将我们的员工关系调整到最大的潜力。我们可以通过发出ulimit命令来检查内核的限制:

ulimit -n

在较小的计算机(液滴大小为512MB)上,该数字可能显示为1024,这是一个很好的起始数字。

让我们更新配置:

sudo nano /etc/nginx/nginx.conf
worker_processes 1;
worker_connections 1024;

请记住,可以服务的客户端数量可以乘以核心数量。在这种情况下,我们可以每秒处理1024个客户端。但是,该keepalive_timeout指令甚至可以进一步缓解这种情况。

缓冲:

我们可以做的另一个非常重要的调整是缓冲区的大小。如果缓冲区大小太小,则Nginx将必须写入一个临时文件,导致磁盘不断读写。在做出任何决定之前,我们需要了解一些指令。

client_body_buffer_size:这将处理客户端缓冲区的大小,即发送到Nginx的所有POST操作。POST操作通常是表单提交。

client_header_buffer_size:与上一个指令类似,只不过它处理客户端标头的大小。出于所有目的和目的,1K通常对于该指令来说是一个不错的大小。

client_max_body_size:客户要求的最大允许大小。如果超过最大大小,则Nginx将吐出413错误或Request Entity Too Large。

large_client_header_buffers:大型客户端标头的缓冲区的最大数量和大小。


client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 2 1k;

超时时间

超时还可以大大提高性能。

的client_body_timeout和client_header_timeout指令是负责的服务器将等待客户端体或客户端头请求之后被发送的时间。如果没有发送正文或标题,则服务器将发出408错误或“ 请求超时”。

该keepalive_timeout分配用于与客户端保持连接超时。简而言之,Nginx将在这段时间后关闭与客户端的连接。

最后,send_timeout建立不是建立在整个答案的传递上,而是建立在两个阅读操作之间;如果这段时间之后客户端什么都不做,则Nginx正在关闭连接。



client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;

Gzip压缩

Gzip可以帮助减少Nginx处理的网络传输量。但是,请小心增加该值,gzip_comp_level因为服务器将开始浪费CPU周期。



gzip             on;
gzip_comp_level  2;
gzip_min_length  1000;
gzip_proxied     expired no-cache no-store private auth;
gzip_types       text/plain application/x-javascript text/xml text/css application/xml;

静态文件缓存

可以为未更改且定期提供的文件设置到期标头。可以将该指令添加到实际的Nginx服务器块中。



location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
}

在上面的数组中添加和删除任何文件类型,以匹配您的Nginx服务器的文件类型。

记录日志

Nginx将命中VPS的每个请求记录到一个日志文件中。如果您使用分析法对此进行监视,则可能需要关闭此功能。只需编辑access_log指令:

access_log off;

保存并关闭文件,然后运行:

sudo service nginx restart
繁星资源博客致力于免费提供各种教程和资源与下载。在没有获得授权前禁止转载!侵犯了您的作品?可以进行邮件申诉,我们在审核后进行撤销。
繁星资源分享博客 » 如何优化Nginx配置 新手篇

发表评论

提供最优质的资源集合

立即查看 了解详情