Gnz*_*iet 2 javascript php mysql wordpress jquery
我正在使用 WordPress 框架并使用 name-cheap 的专用服务器工作,并且该服务器上只有一个站点正在运行。即使在那之后,我的瀑布时间也在 500 毫秒范围内,但我想使其在 100 毫秒左右。这是我的网站 ( http://ucbrowserdownload.net/ ) 和瀑布 从我的角度您可以看到一切都很完美,但仍然没有得到一些解决方案。也可以查看http://labnol.org/
该网站也在 WordPress 中并使用相同的主题,即使我在索引页面上调用的图像或博客也非常少,即使我犯了一个巨大的瀑布。想知道如何解决所有这些问题,并想知道 WordPress 或主题或主机中的问题出在哪里。完全卡住了,过去几周没有解决方案。您的帮助将不胜感激。谢谢你。
Nginx的优化
本文介绍的最佳 Nginx 配置。再次简要介绍已知参数并添加一些直接影响 TTFB 的新参数。
化合物
首先我们需要定义“工人”Nginx 的数量。worker_processes Nginx 每个工作流都能够处理许多连接并链接到物理处理器内核。如果您确切知道服务器中有多少个核心,您可以自己指定数量,或者信任 Nginx:
Run Code Online (Sandbox Code Playgroud)worker_processes auto; # Determination of the number of working processes此外,您必须指定连接数:
Run Code Online (Sandbox Code Playgroud)worker_connections 1024; # Quantification of compounds by one working process, ranging from 1024 to 4096要求
为了让 Web 服务器可以处理最大数量的请求,有必要使用一个默认关闭的指令 multi_accept :
Run Code Online (Sandbox Code Playgroud)multi_accept on; # Workflows will accept all connections值得注意的是,该功能只有在同时有大量请求时才有用。如果要求不是那么多,那么优化工作流程是有意义的,让他们没有白白工作:
Run Code Online (Sandbox Code Playgroud)accept_mutex on; # Workflows will take turns Connection改善 TTFB 和服务器响应时间取决于指令 tcp_nodelay 和 tcp_nopush :
Run Code Online (Sandbox Code Playgroud)on tcp_nodelay; tcp_nopush on; # Activate directives tcp_nodelay and tcp_nopush如果您不详细介绍,这两个功能允许您禁用 TCP 的某些功能,这些功能在 90 年代互联网刚刚获得发展势头时是相关的,但在现代世界中没有意义。第一个指令在数据可用时立即发送数据(绕过 Nagle 算法)。第二个允许您发送响应头(网页)和文件的开头,等待填充包(即,包括 TCP_CORK )。所以浏览器可以先开始显示网页。
乍一看,功能是矛盾的。因此,指令 tcp_nopush 应该与 sendfile 结合使用。在这种情况下,数据包在发货前被填充,因为指令比 read + the write 的方法更快和更优化。包满后,Nginx 自动禁用 tcp_nopush , tcp_nodelay 使套接字发送数据。启用sendfile很简单:
Run Code Online (Sandbox Code Playgroud)sendfile on; # Enable more effective, compared to read + write, file sending method因此,所有三个指令的组合减少了网络负载并加快了文件的发送速度。
缓冲器
另一个重要的优化影响缓冲区的大小——如果它们太小,Nginx 会经常提到磁盘太大——会很快填满 RAM。Nginx 缓冲区为此,您需要设置四个指令。Client_body_buffer_size 和 client_header_buffer_size 分别设置正文的缓冲区大小并读取客户端请求头。client_max_body_size 设置客户端请求的最大大小, large_client_header_buffers 指定读取大请求头的最大缓冲区数和大小。
最佳缓冲区设置如下所示:
Run Code Online (Sandbox Code Playgroud)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超时和保活
适当配置待机时间和保活也可以显着提高服务器响应能力。
指令 client_body_timeout 和 client_header_timeout 在 body 上设置时间延迟并读取请求头:
Run Code Online (Sandbox Code Playgroud)client_body_timeout 10; client_header_timeout 10; # Set the waiting time in seconds在客户端使用 reset_timedout_connection 没有响应的情况下,您可以指定 Nginx 禁用此类化合物:
Run Code Online (Sandbox Code Playgroud)reset_timedout_connection on; # Disable connections timed-out指令 keepalive_timeout 设置停止连接前的等待时间,keepalive_requests 限制来自同一客户端的 keepalive-requests 的数量:
Run Code Online (Sandbox Code Playgroud)keepalive_timeout 30; keepalive_requests 100; # Set the timeout to 30 and limitations 100 on client requests那么send_timeout设置两个写操作之间传输响应中的等待时间:
Run Code Online (Sandbox Code Playgroud)send_timeout 2; # Nginx will wait for an answer 2缓存
启用缓存可显着缩短服务器响应时间。Nginx 缓存方法在关于 Nginx 缓存的材料中有更详细的介绍,但在这种情况下包含重要的缓存控制。Nginx 能够向 redkoizmenyaemyh 缓存数据发送请求,这通常用于客户端。为此,您要在服务器部分添加一行:
Run Code Online (Sandbox Code Playgroud). Location ~ * (jpg | jpeg | png | gif | ico | css | js) $ {expires 365d;}目标文件格式和持续时间缓存
缓存有关常用文件的信息也没有坏处:
Run Code Online (Sandbox Code Playgroud)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 secondsopen_file_cache 指定存储信息的最大文件数和存储时间。open_file_cache_valid 设置您需要检查信息相关性的时间,open_file_cache_min_uses 指定客户对文件的最小引用次数,open_file_cache_errors 包括缓存故障排除文件。
日志记录
这是另一个可以显着降低整个服务器性能的特性,并相应地降低响应时间和 TTFB。所以最好的解决方案是禁用基本日志并仅存储有关严重错误的信息:
Run Code Online (Sandbox Code Playgroud)off the access_log; the error_log /var/log/nginx/error.log crit; # Turn off the main loggingGzip压缩
用处 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 和服务器响应时间的因素。另外不要忘记稳定版本的定期软件更新,这是为了优化和提高性能。