作为Nginx管理员,你总是在寻找新方法来提高 Web 服务器的性能。这种搜索将带你走上各种途径,最终,你会在无数解决方案之间做出选择。
Nginx缓存静态资源或内容缓存是Nginx优化的一种可能方法。每当浏览器访问网站时,Nginx 会将特定文件(例如静态图像资源)的缓存卸载到单个 Web 浏览器,而不是为每个文件提供服务。因此,你的 Nginx 驱动的网站在浏览器中加载得更快。
Nginx如何缓存静态资源?在这篇文章中,你将学习如何在 Nginx 中使用 HTTP 缓存来缓存静态资源。在进入静态内容缓存过程之前,首先要了解静态内容的基本概念以及静态内容在 Nginx 中是如何缓存的。
什么是静态内容
任何存储在服务器上并每次以相同方式提供给用户的文件都称为静态内容。静态内容功能类似于报纸。当报纸出版时,无论白天发生什么新事件,每个拿起副本的人都会整天看到相同的故事和照片。
网站的大部分内容都基于预先格式化的静态文件。这些静态文件不太可能随着时间的推移而改变,其他用户也是如此。与基于数据库信息“即时”生成的动态文件相比,静态文件是缓存的默认候选对象。静态内容的示例包括图像、音乐、javascript、电影和 CSS 文件。
如何在 Nginx 中缓存静态资源
Web 缓存的典型方法是将静态文件的副本保存在缓存中。这个过程让静态内容更贴近网站用户,下次更快地交付静态资源。静态内容或资源可以由内容交付网络 (CDN) 和浏览器缓存一段预定的时间,并在请求该静态资源时提供给用户。由于静态内容不会随时间变化,因此用户可以多次收到相同的文件。
Nginx 中的 HTTP 缓存标头是什么
为了定义缓存持续时间并指示可缓存的 Web 内容,Web 开发人员使用HTTP 缓存标头。你可以通过使用不同的缓存头来自定义缓存策略,以确保静态内容或资源的新鲜度。
例如,“ Cache-Control: max-age=3600 ”声明特定文件只能缓存一小时,之后必须从源重新加载。单独标记单个或一组文件可能非常耗时。通过实施能够覆盖缓存标头的认知方法,现代 CDN 允许你避免这种做法。
现在,我们将向你展示如何在 Nginx 中使用 HTTP 缓存启用静态缓存。如果你的网站包含许多静态资源或内容,那么提供的方法将帮助你加快网页加载速度。要遵循下面给出的方法,你应该在系统上安装并启用 Nginx。
如何在 Nginx 中使用 HTTP 缓存启用静态资源缓存
Nginx缓存静态资源:首先,按“ CTRL+ALT+T ”打开终端。之后,执行下面给出的命令以在你的 nano 编辑器中打开 Nginx 配置文件:
$ sudo nano /etc/nginx/nginx.conf
Nginx HTTP缓存静态资源示例:我们在默认的 Nginx 文件中启用静态缓存。如果你有多个虚拟主机和站点,则必须在每个配置文件中添加以下设置:
Nginx如何缓存静态资源?添加以下几行以缓存静态资源,例如 css 文件、图像、图标、JavaScript 文件:
location ~* \.(css|gif|jpg|js|png|ico|otf|sng|xls|doc|exe|jpeg|tgx)$ {
access_log off;
expires max;
}
我们添加了“ access_log off ”以禁用未达到 I/O 限制的访问注销。而“ expires ”标头包含与浏览器缓存中缓存内容的可用性相关的信息。“ expires ”是一个HTTP 标头,可以放置在配置文件中的块中,例如server{}、http{}和location{}块。通常,“ expires ” HTTP 标头添加在用于缓存静态文件的位置块中:
现在,按“ CTRL+O ”保存我们对 Nginx 配置文件所做的更改:
使用“ -t ”选项执行“ nginx ”命令以测试Nginx配置文件及其语法:
$ sudo nginx -t
现在,通过在终端中键入以下给定的命令来重新启动 Nginx:
$ sudo systemctl restart nginx
如何在 Nginx 中使用 HTTP Header Live 测试静态资源的缓存
Nginx缓存静态资源:对于在Nginx Web 服务器上运行的网站,你可以在浏览器中添加HTTP 标头 Live扩展来测试缓存过程。
Nginx HTTP缓存静态资源示例:例如,我们通过单击“添加到 Firefox ”按钮将 HTTP Header Live 添加到我们的 Firefox 浏览器:
允许 HTTP Header Live 访问网站和浏览器相关数据:
接下来,打开你在其配置文件中启用了静态内容缓存的网站,你将看到 HTTP Header 显示了与缓存资源相关的所有信息:
你也可以按“ CTRL+SHIFT+I ”打开开发者工具。加载你的网站几次,你会注意到 Web 加载速度大大提高,因为大多数资源在网页第一次加载时被缓存:
Nginx缓存静态资源总结
在网站上,静态内容是一种不会跨网页更改的内容。如果你的网站包含静态资源或内容,你可以通过启用缓存来提高其性能,缓存存储静态内容以便在浏览器中更快地访问。Nginx如何缓存静态资源?在这篇文章中,我们解释了静态内容是什么,静态缓存在 Nginx 中是如何工作的,你可以在 Nginx 中使用 HTTP 缓存来缓存静态资源或内容。此外,我们还演示了如何使用 HTTP Header Live 测试静态资源的缓存。