如何减少第一个字节的时间

时间:2016-05-30 11:08:53

标签: javascript php jquery mysql wordpress

我正在使用WordPress框架并从名称便宜的专用服务器上工作,并且该服务器上只运行一个站点。 即使在那之后,我的瀑布时间也在500毫秒之内,但我想让它在100毫秒左右。 这是我的网站(http://ucbrowserdownload.net/)和瀑布 你可以看到一切都是完美的,但仍然没有得到解决方案。 也可以查看http://labnol.org/ 这个网站也在WordPress中使用相同的主题,即使我在索引页面上调用的图像或博客也少,即使我错误也是一个巨大的瀑布。 想知道,如何解决所有这些问题,并了解WordPress或主题或主机中的问题所在。 完全陷入困境,过去几周没有解决方案。 我们将非常感谢您的帮助。 谢谢。enter image description here

1 个答案:

答案 0 :(得分:1)

Original Source

  

优化Nginx

     

本文介绍的最佳Nginx配置。再来一次   简要介绍已知的参数并添加一些新参数   这直接影响到TTFB。

     

<强>化合物

     

首先我们需要定义&#34;工人的数量&#34; Nginx的。   worker_processes Nginx每个工作流都能够处理很多   连接并链接到物理处理器核心。如果你知道的话   确切地说,服务器中有多少个核心,您可以指定该数量   你自己,还是相信Nginx:

worker_processes auto;
# Determination of the number of working processes
     

此外,您必须指定连接数:

worker_connections 1024;
# Quantification of compounds by one working process, ranging from 1024 to 4096
     

<强>请求

     

对Web服务器可以处理最大数量的请求   默认情况下使用关闭指令multi_accept:

multi_accept on;
# Workflows will accept all connections
     

值得注意的是,该功能仅在大型时才有用   请求数量同时。如果请求不是那么多,那就是   有意义的是优化工作流程,以便它们不起作用   徒然:

accept_mutex on;
# Workflows will take turns Connection
     

改善TTFB和服务器响应时间取决于指令   tcp_nodelay和tcp_nopush:

on tcp_nodelay; 
tcp_nopush on;
# Activate directives tcp_nodelay and tcp_nopush
     

如果你没有详细介绍,这两个功能允许你   禁用TCP的某些功能,这些功能在90年代是相关的,   当互联网刚刚获得动力,但没有意义   现代世界。第一个指令尽快发送数据   可用(绕过Nagle算法)。第二个允许你   发送标题响应(网页)和文件的开头,   等待填充包(即包括TCP_CORK)。所以   浏览器可以开始显示网页。

     乍一看,功能是矛盾的。因此,   指令tcp_nopush应与sendfile一起使用。   在这种情况下,数据包在装运前作为指令填充   比read +的方法快得多,也更优   写。程序包已满后,Nginx会自动禁用   tcp_nopush和tcp_nodelay使套接字发送数据。   启用sendfile非常简单:

sendfile on;
# Enable more effective, compared to read + write, file sending method
     

因此,所有三个指令的组合减少了负载   网络并加快文件的发送速度。

     

<强>缓冲器

     

另一个重要的优化会影响缓冲区的大小 - 如果   它们太小了,Nginx经常会提到磁盘太大 -   将快速填满RAM。 Nginx Buffers要做到这一点,你需要   设置四个指令。 Client_body_buffer_size和   client_header_buffer_size设置正文的缓冲区大小并读取   分别是客户端请求标头。 client_max_body_size集合   客户端请求的最大大小,以及   large_client_header_buffers指定的最大数量和大小   缓冲区以读取大型请求标头。

     

最佳缓冲区设置如下所示:

10K client_body_buffer_size; 
client_header_buffer_size 1k; 
of client_max_body_size 8m; 
large_client_header_buffers 2 1k;
# 10k buffer size on the body of the request, 1 KB per title, 8MB to the query buffer and 2 to read large headlines
     

超时和保持活力

     

正常配置待机时间和keepalive也可以   显着提高服务器响应能力。

     

指令client_body_timeout和client_header_timeout设置时间延迟   在身体上并阅读请求标题:

client_body_timeout 10; 
client_header_timeout 10;
# Set the waiting time in seconds
     

在客户使用时缺乏响应的情况下   reset_timedout_connection你可以指定Nginx禁用这样的   化合物:

reset_timedout_connection on;
# Disable connections timed-out
     

指令keepalive_timeout设置停止前的等待时间   connection和keepalive_requests限制的数量   来自同一客户的keepalive-requests:

keepalive_timeout 30; 
keepalive_requests 100;
# Set the timeout to 30 and limitations 100 on client requests
     

send_timeout设置传输响应中的等待时间   两次写操作之间:

send_timeout 2;
# Nginx will wait for an answer 2
     

<强>缓存

     

启用缓存可显着改善服务器响应时间。 Nginx缓存   方法在有关缓存的材料中有更详细的介绍   Nginx,但在这种情况下包含重要的缓存控制。   Nginx能够向redkoizmenyaemyh缓存数据发送请求,   通常在客户端使用。为此,服务器   您要添加一行的部分:

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

目标文件格式和持续时间缓存

     

缓存有关常用文件的信息也没有什么坏处:

open_file_cache max = 10000 = 20s the inactive; 
open_file_cache_valid 30s; 
open_file_cache_min_uses 2; 
open_file_cache_errors on;
# Enables the cache tags 10 000 files in 30 seconds
     

open_file_cache指定最大文件数   存储信息,以及存储时间。 open_file_cache_valid   设置您需要检查相关性的时间   信息,open_file_cache_min_uses指定最小数量   对客户和文件的引用   open_file_cache_errors包括缓存故障排除文件。

     

<强>登录

     

这是另一个可以显着降低性能的功能   整个服务器,以及相应的响应时间和TTFB。所以   最好的解决方案是禁用基本日志和存储信息   仅限严重错误:

off the access_log; 
the error_log /var/log/nginx/error.log crit;
# Turn off the main logging
     

Gzip压缩

     

实用性Gzip很难夸大。压缩可以   显着减少流量并减轻渠道。但他有一个   缺点 - 需要压缩时间。所以它必须关闭   改善TTFB和服务器响应时间。 Gzip在这个阶段,我们不能   建议关闭Gzip,因为压缩可以改善Time To Last Byte,即   整页加载所需的时间。在大多数情况下,这是一个   更重要的参数。在TTFB和改善服务器响应时间   极大地影响了包含的HTTP / 2的大规模实现   用于标头压缩和多路复用的内置方法。那样的   未来可能会禁用Gzip将不会像现在这样突出。

     

PHP优化:Nginx中的FastCGI

     

所有网站都使用现代服务器技术。例如,PHP就是这样的   优化也很重要。通常,PHP打开一个文件,验证和   编译代码,然后执行。可以设置这样的文件和进程,   所以PHP可以使用OPcache缓存redkoizmenyaemyh文件的结果   模块。和Nginx一样,使用FastCGI模块连接到PHP都可以存储   PHP脚本立即发送给用户的结果。

     

最重要的

     

优化资源和Web服务器的正确设置    - 主要影响TTFB和服务器响应时间因素。另外不要忘记稳定版本的常规软件更新   是为了优化和提高绩效。