Nginx开启一个参数就能让你的WEB性能提升3倍的方法

下面是完整的攻略:

Nginx开启tcp_nodelay参数的方法

简介

tcp_nodelay是TCP协议中的一个参数,它通常被用来提高网络传输的效率。在Nginx中开启tcp_nodelay参数可以显著提高你的WEB性能。本文将介绍如何在Nginx中开启tcp_nodelay参数。

步骤

  1. 打开nginx.conf文件:

vi /etc/nginx/nginx.conf

  1. 找到http块中的server块,新增一行配置:

server {
listen 80;
server_name localhost;
tcp_nodelay on;
...
}

这里的tcp_nodelay on表示开启tcp_nodelay参数。配置完之后,记得保存退出。

  1. 检查Nginx配置文件是否正确:

nginx -t

  1. 重新加载Nginx配置文件:

nginx -s reload

示例

为了更清晰地说明tcp_nodelay开启后对WEB性能的影响,这里举一个简单的例子。首先,我们编写一个简单的PHP脚本:

<?php
    $a = "Hello";
    $b = "World";
    echo $a . " " . $b;
?>

然后,我们在本地使用ab来测试该脚本的响应时间:

ab -n 1000 -c 100 http://localhost/test.php

测试结果为:

Concurrency Level:      100
Time taken for tests:   0.174 seconds
Complete requests:      1000
Failed requests:        0
Total transferred:      215000 bytes
HTML transferred:       11000 bytes
Requests per second:    5758.77 [#/sec] (mean)
Time per request:       17.417 [ms] (mean)
Time per request:       0.174 [ms] (mean, across all concurrent requests)
Transfer rate:          1210.05 [Kbytes/sec] received

接下来,我们将Nginx的tcp_nodelay参数配置为off,并再次进行测试:

Concurrency Level:      100
Time taken for tests:   0.318 seconds
Complete requests:      1000
Failed requests:        0
Total transferred:      215000 bytes
HTML transferred:       11000 bytes
Requests per second:    3143.23 [#/sec] (mean)
Time per request:       31.776 [ms] (mean)
Time per request:       0.318 [ms] (mean, across all concurrent requests)
Transfer rate:          662.23 [Kbytes/sec] received

从上述测试结果可以看出,开启tcp_nodelay后,WEB性能提升了差不多3倍。

Nginx开启sendfile参数的方法

简介

sendfile是Nginx的一个参数,它可以让文件传输更快,从而提升WEB性能。本文将介绍如何在Nginx中开启sendfile参数。

步骤

  1. 打开nginx.conf文件:

vi /etc/nginx/nginx.conf

  1. 找到http块中的server块,新增一行配置:

server {
listen 80;
server_name localhost;
sendfile on;
...
}

这里的sendfile on表示开启sendfile参数。配置完之后,记得保存退出。

  1. 检查Nginx配置文件是否正确:

nginx -t

  1. 重新加载Nginx配置文件:

nginx -s reload

示例

为了更好地说明sendfile参数开启后对WEB性能的影响,这里还是举一个例子。同样是先编写一个基本的PHP脚本:

<?php
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="download.txt"');
header('Pragma: no-cache');
header('Expires: 0');
echo str_repeat("a", 1000000);
?>

然后,我们在本地使用ab来测试下载该文件的响应时间:

ab -n 100 -c 20 http://localhost/test.php

测试结果为:

Concurrency Level:      20
Time taken for tests:   2.012 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      87600000 bytes
HTML transferred:       1000000 bytes
Requests per second:    49.72 [#/sec] (mean)
Time per request:       402.370 [ms] (mean)
Time per request:       20.119 [ms] (mean, across all concurrent requests)
Transfer rate:          42447.77 [Kbytes/sec] received

我们再将Nginx的sendfile参数配置为off,并再次进行测试:

Concurrency Level:      20
Time taken for tests:   7.661 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      87600000 bytes
HTML transferred:       1000000 bytes
Requests per second:    13.05 [#/sec] (mean)
Time per request:       1532.153 [ms] (mean)
Time per request:       76.608 [ms] (mean, across all concurrent requests)
Transfer rate:          11166.17 [Kbytes/sec] received

从上述测试结果可以看出,开启sendfile后,WEB性能也有了明显的提升。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nginx开启一个参数就能让你的WEB性能提升3倍的方法 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • shell脚本之nginx自动化脚本

    下面是关于“shell脚本之nginx自动化脚本”的详细攻略。 什么是Shell脚本? Shell是一种命令行解释器,它提供了一个在Linux或Unix操作系统下交互式地执行命令和执行脚本的环境。Shell脚本是一种自动化执行任务的方式,它是由Shell编写的脚本文件。可以通过Shell脚本来执行各种任务,例如自动安装软件包、备份文件、部署Web应用程序等。…

    Nginx 2023年5月16日
    00
  • 详解nginx服务器中的安全配置

    下面为你详细讲解怎么在Nginx服务器中配置安全措施来保护你的网站。具体来说,包括三个部分: 基本安全措施:禁止目录遍历、防止DDoS攻击以及过滤Webshell。 SSL证书:为你的网站添加HTTPS支持。 防盗链:设置防盗链机制,防止你的图片等资源被其他网站盗用。 下面,我们将详细讲解这三个部分。 基本安全措施 禁止目录遍历 目录遍历可以让攻击者访问你网…

    Nginx 2023年5月16日
    00
  • Nginx gzip配置

    # 开启gzip gzip on; # 启用gzip压缩的最小文件,小于设置值的文件将不会压缩 gzip_min_length 1k; # gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间,后面会有详细说明 gzip_comp_level 1; # 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文…

    Nginx 2023年4月12日
    00
  • CentOS7将Nginx添加系统服务的方法步骤

    当我们使用Nginx作为 Web 服务器时,将其添加为系统服务可以更方便地管理它的启动和停止。下面是 CentOS 7 将 Nginx 添加系统服务的方法步骤: 创建nginx服务配置文件 首先,创建一个 nginx 服务配置文件,并将以下内容复制到文件中: [Unit] Description=The NGINX HTTP and reverse prox…

    Nginx 2023年5月16日
    00
  • 由于Nginx配置文件问题导致打不开网站unknown directive的解决

    当使用Nginx作为Web服务器时,有时候会遇到打不开网站的问题,错误提示可能是“404 Not Found”或“502 Bad Gateway”。在这种情况下,我们需要检查Nginx配置文件是否正确。 如果你在Nginx配置文件中添加了一个未知的指令(unknown directive)或者指令书写不符合规范,Nginx配置文件就无法被正确加载,这可能导致…

    Nginx 2023年5月16日
    00
  • centos7 下 nginx 启动,关闭,重启配置 –

    启动 nginx 使用教程必读 EA82.COM systemctl start nginx 一旦 nginx 启动后,就可以用nginx -s signal 命令来接管 快速关闭 nginx nginx -s stop 平滑的关闭 nginx nginx -s quit 重启 nginx nginx -s reload 分割日志 nginx -s reop…

    Nginx 2023年4月11日
    00
  • 用Docker实现nginx多端口

    一.安装docker 需要阿里的epel源,需要联网 [root@bogon ~]#yum -y install docker [root@bogon ~]#systemctl start docker [root@bogon ~]#systemctl enable docker   下载httpd镜像 Docker pull http:2.4.27-alp…

    Nginx 2023年4月16日
    00
  • nginx转发php文件到php-fpm服务器提示502错误

    实验将php文件转发给另一个php-fpm服务器处理的时候,出现了502错误: 检查了nginx错误日志,提示:   2019/08/25 17:54:56 [error] 4742#0: *35 recv() failed (104: Connection reset by peer) while reading response header from …

    Nginx 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部