HTTP服务器优化
每个 HTTP 服务器都提供某些功能,可用于优化请求处理和内容服务。在本节中,我们将分享 Apache 和 NGINX 的一些技术,这些技术可用于优化网络服务器,并提供最佳性能和可扩展性。应用这些优化时,通常需要重新启动 Apache 或 NGINX。
缓存静态文件
大多数情况下,静态文件(如图片、.css、.js 和字体)不会频繁更改。因此,最好的做法是在终端用户机器上缓存这些静态文件。为此,网络服务器会在响应中添加特殊的标头,告诉用户浏览器在一定时间内缓存静态内容。以下是 Apache 和 NGINX 的配置代码。
Apache
让我们看一下 Apache 配置来缓存以下静态内容:
<FilesMatch "\.(ico|jpg|jpeg|png|gif|css|js|woff)$">
Header set Cache-Control "max-age=604800, public
</FileMatch>
在前面必须放入 .htaccess
文件的代码中,我们使用了 Apache FilesMatch
指令来匹配文件的扩展名。如果请求了所需的扩展名文件,Apache 就会将标题设置为缓存控制七天。然后浏览器会将这些静态文件缓存七天。
NGINX
以下配置可以放置在 /etc/nginx/sites-available/yourvirtual-host-conf-file 中:
Location ~* .(ico|jpg|jpeg|png|gif|css|js|woff)$ {
Expires 7d;
}
在前面的代码中,我们使用 NGINX Location
代码块和不区分大小写的修饰符 (~*
) 将 Expires
设置为七天。这段代码将为所有定义的文件类型设置七天的 cache-control 头信息。
进行这些设置后,请求的响应标头将如下所示:

从上图中可以清楚地看到,.js
文件是从缓存中加载的。其 cache-control 标头设置为 7 天或 604 800 秒。在 expires 标头中也可以清楚地看到到期日期。过期后,浏览器将从服务器加载该 .js
文件,并在 cache-control 标头中定义的期限内再次缓存该文件。