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日

相关文章

  • 基于Nginx实现HTTPS网站设置的步骤

    下面我将详细讲解“基于Nginx实现HTTPS网站设置的步骤”的完整攻略。 1. 前置条件 在进行 HTTPS 网站设置之前,需要具备如下前置条件: 已经安装了 Nginx; 已经获得了 SSL 证书; DNS 服务已经将域名解析到 Nginx 的 IP 地址上; 已经将 443 端口添加到 Nginx 的防火墙规则中。 2. 步骤 2.1 安装 SSL 证…

    Nginx 2023年5月16日
    00
  • nginx 是如何分配 worker 进程连接数的

    客户端连接过来后,多个空闲的进程,会竞争这个连接,很容易看到,这种竞争会导致不公平,如果某个进程得到 accept 的机会比较多,它的空闲连接很快就用完了,如果不提前做一些控制,当 accept 到一个新的 tcp 连接后,因为无法得到空闲连接,而且无法将此连接转交给其它进程,最终会导致此 tcp 连接得不到处理,就中止掉了。很显然,这是不公平的,有的进程有…

    Nginx 2023年4月11日
    00
  • nginx系统真正有效的图片防盗链完整设置详解

    原文:http://www.wufangbo.com/nginx-fang-dao-lian/   关于nginx防盗链的方法网上有很多教程,都可以用,但是我发现很多教程并不完整,所做的防盗链并不是真正的彻底的防盗链! 一般,我们做好防盗链之后其他网站盗链的本站图片就会全部失效无法显示,但是您如果通过浏览器直接输入图片地址,仍然会显示图片,仍然可以右键图片另…

    Nginx 2023年4月9日
    00
  • Nginx 安装笔记(含PHP支持、虚拟主机、反向代理负载均衡)

    请允许我按照标准的markdown格式文本来详细讲解 “Nginx 安装笔记(含PHP支持、虚拟主机、反向代理负载均衡)”。 Nginx 安装笔记 系统环境 操作系统为CentOS 7。 安装Nginx 使用yum命令安装Nginx: sudo yum -y install nginx 配置Nginx 启动Nginx服务 使用systemctl命令启动Ngi…

    Nginx 2023年5月16日
    00
  • keepalived结合nginx实现nginx高可用的方法

    实现nginx高可用的方法有很多种,其中一种比较常见的方法是使用keepalived结合nginx。接下来我将给出一个完整的攻略,包括keepalived、nginx的安装和配置以及两个示例说明。 安装keepalived keepalived是一个高可用性的解决方案,可以在多个服务器之间维护虚拟IP。在此之前需要安装依赖库和编译工具: sudo yum i…

    Nginx 2023年5月16日
    00
  • Nginx 反向代理、负载均衡、页面缓存、URL重写以及读写分离

    1.环境准备 前端Nginx:10.160.65.44 后端WEB服务器两台:10.160.65.49/10.160.65.50 2.安装Nginx: 下载nginx-1.9.15.tar.gz,放置在目录/usr/local/src目录下面,解压。 ./configure make & make install 在/usr/local/目录下生成了…

    Nginx 2023年4月11日
    00
  • Nginx配置ssl实现https的全过程记录

    下面是“Nginx配置ssl实现https的全过程记录”的完整攻略。 Nginx配置ssl实现https的全过程记录 什么是ssl SSL(Secure Sockets Layer),即安全套接字层,SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通信提供安全支持。为了使用SSL协议,必须向证书授权中心(CA)申请证书。 获取ssl证书 在申请SS…

    Nginx 2023年5月16日
    00
  • nginx location 中的 alias 和 root

    1、 root / alias nginx指定文件路径有两种方式root和alias,这两者的用法区别,使用方法总结了下,方便大家在应用过程中,快速响应。root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。 [root]语法:root path默认值:root html配置段:h…

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