From 8dfdb2b3f6e8e58298a951bf97ffd7032da813fc Mon Sep 17 00:00:00 2001 From: Tinywan <756684177@qq.com> Date: Thu, 7 May 2020 11:48:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A6=82=E4=BD=95=E6=94=B9=E8=BF=9B=20NGINX=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E8=8A=82=E7=9C=81=E5=B8=A6?= =?UTF-8?q?=E5=AE=BD=EF=BC=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Images/screenshot_1588728211136.png | Bin 0 -> 48834 bytes Images/tinywan-wechat.jpg | Bin 0 -> 27644 bytes Nginx/nginx-config-bandwidth.md | 112 ++++++++++++++++++++++++++++ README.md | 8 +- 4 files changed, 118 insertions(+), 2 deletions(-) create mode 100644 Images/screenshot_1588728211136.png create mode 100644 Images/tinywan-wechat.jpg create mode 100644 Nginx/nginx-config-bandwidth.md diff --git a/Images/screenshot_1588728211136.png b/Images/screenshot_1588728211136.png new file mode 100644 index 0000000000000000000000000000000000000000..4179b160726143b7cbbbdc39f1b99a3c95580431 GIT binary patch literal 48834 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 literal 0 HcmV?d00001 diff --git a/Nginx/nginx-config-bandwidth.md b/Nginx/nginx-config-bandwidth.md new file mode 100644 index 0000000..d109bdb --- /dev/null +++ b/Nginx/nginx-config-bandwidth.md @@ -0,0 +1,112 @@ +## 如何改进 NGINX 配置文件节省带宽? + +#### 为HTML,CSS和JavaScript文件启用Gzip压缩 + +如您所知,用于在现代网站上构建页面的HTML,CSS和JavaScript文件可能非常庞大。在大多数情况下,Web服务器可以即时压缩这些和其他文本文件,以节省网络带宽。 + +查看Web服务器是否正在压缩文件的一种方法是使用浏览器的开发人员工具。对于许多浏览器,您可以使用F12键访问这些工具,并且相关信息位于“网络”选项卡上。 + +![](/Images/screenshot_1588728211136.png) + +默认情况下,NGINX中禁用压缩,但是根据您的安装或Linux发行版,某些设置可能会在默认的nginx.conf文件中启用。在这里,我们在NGINX配置文件中启用gzip压缩: +``` +gzip on; +gzip_types application/xml application/json text/css text/javascript application/javascript; +gzip_vary on; +gzip_comp_level 6; +gzip_min_length 500; +``` + +#### 设置缓存头 +当浏览器检索网页的文件时,它会将副本保留在本地磁盘缓存中,这样,当您再次访问该页面时,它不必从服务器重新获取文件。每个浏览器都使用自己的逻辑来决定何时使用文件的本地副本以及何时在服务器上更改了文件时再次获取它。但是,作为网站所有者,您可以在发送的HTTP响应中设置缓存控制和过期标头,以提高浏览器的缓存行为的效率。从长远来看,您会收到很多不必要的HTTP请求。 + +首先,您可以为字体和图像设置较长的缓存过期时间,这些字体和图像可能不会经常更改(即使更改,它们通常也会获得新的文件名)。在以下示例中,我们指示客户端浏览器将字体和图像在本地缓存中保留一个月: + +``` +location ~* \.(?:jpg|jpeg|gif|png|ico|woff2)$ { + expires 1M; + add_header Cache-Control "public"; +} +``` +#### 启用HTTP / 2协议支持 +HTTP / 2是用于服务网页的下一代协议,旨在更好地利用网络和主机服务器。根据Google文档,它可以更快地加载页面: + +生成的协议对网络更友好,因为与HTTP / 1.x相比,使用的TCP连接更少。这意味着与其他流量的竞争减少,连接寿命更长,从而可以更好地利用可用网络容量。 + +NGINX 1.9.5和更高版本(以及NGINX Plus R7和更高版本)支持HTTP / 2协议,您所需要做的就是启用它。为此,请在您的NGINX配置文件中http2的listen指令中包含参数: + +``` +listen 443 ssl http2; +``` +请注意,在大多数情况下,您还需要启用TLS才能使用HTTP / 2。 + +您可以通过[HTTP2.Pro](https://http2.pro/) 服务验证您(或任何站点)是否支持HTTP / 2 : + + +#### 优化记录 +让自己喝一杯自己喜欢的饮料,舒适地坐着,然后思考:您上次查看访问日志文件是什么时候?上周,上个月,从来没有?即使将其用于站点的日常监视,您也可能只关注错误(400和500状态代码等),而不关注成功的请求。 + +通过减少或消除不必要的日志记录,可以节省服务器上的磁盘存储,CPU和I / O操作。这不仅使您的服务器更快一点-如果将您部署在云环境中,则释放的I / O吞吐量和CPU周期可能为同一虚拟机上的其他虚拟机或应用程序节省生命。 + +有几种不同的方法可以减少和优化日志记录。在这里,我们重点介绍三个。 + + +##### 方法1:禁用页面资源请求的记录 + +如果您不需要记录检索普通页面资源(例如图像,JavaScript文件和CSS文件)的请求,则这是一种快速简便的解决方案。您需要做的就是创建一个location与这些文件类型匹配的新块,并禁用其中的日志记录。(您也可以将此access_log指令添加到我们设置标头的上方的location块中。)Cache-Control +``` +location ~* \.(?:jpg|jpeg|gif|png|ico|woff2|js|css)$ { + access_log off; +} +``` +##### 方法2:禁用成功请求的日志记录 + +这是一种更强大的方法,因为它会丢弃带有或响应代码的查询,仅记录错误。它比方法1稍微复杂一点,因为它取决于如何配置NGINX日志记录。在我们的示例中,我们使用Ubuntu Server发行版中包含的标准**nginx.conf**,因此,无论虚拟主机如何,所有请求都记录到 **/var/log/nginx/access.log中**。`2xx``3xx` + +使用[官方NGINX文档中](https://nginx.org/en/docs/http/ngx_http_log_module.html#access_log)的示例,让我们打开条件日志记录。创建一个变量`$loggable`,并将其设置为,`0`以使用和代码进行请求,否则设置为 。然后在指令中将此变量作为条件引用。`2xx``3xx``1``access_log` + +这是 **/etc/nginx/nginx.conf** 中`http`上下文中的原始指令: +``` +access_log /var/log/nginx/access.log; +``` +添加一个[`map`](https://nginx.org/en/docs/http/ngx_http_map_module.html#map)块并从`access_log`指令中引用它: + +``` +map $status $loggable { + ~^[23] 0; + default 1; +} + +access_log /var/log/nginx/access.log combined if=$loggable; +``` +请注意,尽管这`combined`是默认的日志格式,但是在包含`if`参数时,您需要明确指定它。 + +##### 方法3:使用缓冲最小化I / O操作 + +即使您要记录所有请求,也可以通过打开访问日志缓冲来最大程度地减少I / O操作。使用此指令,NGINX会等待将日志数据写入磁盘,直到填满512 KB缓冲区或自上次刷新以来经过1分钟(以先发生者为准)。 + +``` +access_log /var/log/nginx/access.log combined buffer=512k flush=1m; +``` + +### 限制特定URL的带宽 + +如果服务器提供较大的文件(或较小但非常受欢迎的文件,例如表单或报表),则设置客户端下载文件的最大速度可能很有用。如果您的站点已经承受了很高的网络负载,则限制下载速度会留下更多带宽,以使应用程序的关键部分保持响应速度。这是硬件制造商使用的非常流行的解决方案–您可能需要等待更长的时间才能为打印机下载3 GB的驱动程序,但是同时有成千上万的其他人下载您仍然可以下载。😉 + +使用[`limit_rate`](https://nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate)指令限制特定URL的带宽。在这里,我们将 **/ download** 下每个文件的传输速率限制为每秒50 KB。 +``` +location /download/ { + limit_rate 50k; +} +``` +您可能还希望仅对较大的文件进行速率限制,这可以使用[`limit_rate_after`](https://nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate_after)指令进行。在此示例中,每个文件(来自任何目录)的前500 KB都不受速度限制地进行传输,之后的所有内容均以50 KB / s为上限。这样可以加快网站关键部分的交付速度,同时降低其他部分的速度。 + +``` +location / { + limit_rate_after 500k; + limit_rate 50k; +} +``` +请注意,速率限制适用于浏览器和NGINX之间的单个HTTP连接,因此请不要阻止用户使用下载管理器来解决速率限制。 + +最后,您还可以限制到服务器的并发连接数或请求速率。有关详细信息,请参见我们的[文档](https://docs.nginx.com/nginx/admin-guide/security-controls/controlling-access-proxied-http/)。 \ No newline at end of file diff --git a/README.md b/README.md index 967e286..97709b1 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,12 @@ Nginx与Lua编写脚本的基本构建块是指令执行顺序的图 -![Nginx编译安装](Images/Nginx-Phase.png) +![Nginx编译安装](Images/Nginx-Phase.png) ## Nginx 教程 #### 基础 -* [Nginx编译安装](/Nginx/nginx-install.md) +* [Nginx编译安装](/Nginx/nginx-install.md) * [Nginx.conf详解](/Nginx/nginx-base-config.md) * [Location 详解](/docs/Nginx/location-detail.md) * [Nginx基础知识](/Nginx/nginx-basic.md) @@ -23,6 +23,7 @@ Nginx与Lua编写脚本的基本构建块是指令执行顺序的图 * [如何在工作中提高Ngixn服务器性能?达到高效](https://juejin.im/post/5adb45e96fb9a07ab773c767?utm_source=gold_browser_extension) * [并发 = 同步/异步/阻塞/非阻塞/进程/线程](https://juejin.im/post/5bc69ecee51d45395d4f4072) * [The Complete NGINX Cookbook](docs/Complete-NGINX-Cookbook-2019.pdf) +* [如何改进 NGINX 配置文件节省带宽?](/Nginx/nginx-config-bandwidth.md) #### 案例 * [Nginx 同一个IP上配置多个HTTPS主机](/Nginx/more-domain-config.md) @@ -132,3 +133,6 @@ Nginx与Lua编写脚本的基本构建块是指令执行顺序的图 * [Mysql 自动备份脚本安全加锁机制](/Nginx-Rtmp/backup_mysql.sh) * [PHP和Shell 脚本如何很好的搭配](/PHP/php-shell_run.md) +## 微信公众号 + +![Nginx编译安装](Images/tinywan-wechat.jpg) \ No newline at end of file