使用 htaccess 进行 GZIP 压缩有啥限制吗?

Posted

技术标签:

【中文标题】使用 htaccess 进行 GZIP 压缩有啥限制吗?【英文标题】:GZIP compression using htaccess are there any limitations?使用 htaccess 进行 GZIP 压缩有什么限制吗? 【发布时间】:2015-03-30 02:51:24 【问题描述】:

我们目前已使用 htaccess deflate 命令设置 GZIP 压缩。我想知道是否有人会帮助我们理解以下内容......

使用 htaccess 进行放气是否存在任何潜在问题,例如放气时服务器会增加额外的压力?这是否适合每天浏览量为 1,200 次且包含多个 JS/CSS 文件的网站?

我们考虑过将 GZIP 文件与我们的内容一起托管,并创建一个脚本以在解压缩文件发生更改时更新 zip 文件。然而,如果它不会带来自己的问题,以下代码的简单转储似乎要容易得多......

# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE font/ttf font/otf

提前感谢您的任何建议。

戴夫

【问题讨论】:

【参考方案1】:

这真的取决于你在放气。如果你有一个好的 CPU,那么基于文本的文件(js、css 等)的性能几乎没有。我还将包括mod_expires 用于静态文件的缓存控制。如果您正在缓存大型动态文件,那么您可能会遇到性能问题。但是,您在当前规则中缓存的文本文件应该不会产生很大的影响。

所以是的,您应该缓存文件以获得良好的用户体验,您可以在此处阅读相关内容。

https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/optimize-encoding-and-transfer

根据您所提供的服务,您可以在mod_deflate 上找到一些性能信息。

http://www.webperformance.com/library/reports/moddeflate/

我个人在我的静态内容上使用mod_deflate,我的网站加载速度非常快。我认为您不会对当前使用它的目的有任何疑问。

【讨论】:

谢谢 - 我会检查一下,我会在你的评论上给你一个“up”的标记,但在这里不能成为新人。 @DaveSmith 没问题。一旦你有几个代表点,你就可以做更多的事情。【参考方案2】:

但是,假设您在同一页面中嵌入了 20 个外部 JS 和 10 个 CSS 文件(就像当今许多网站一样),总共有 31 个文件(包括 .html 文件本身),他们平均说每个 20KB。我猜这相当于服务器端有 31 个进程来压缩所有文件,客户端有 31 个进程来压缩所有文件(请确认)。

每天有 1200 个请求,这相当于服务器端的 37,200 个进程。我会查看每个进程的 CPU 使用率。在繁忙的服务器上,您可能会遇到麻烦。对于 CSS、HTML 和 JS 等静态 ASCII 文件,最好保留 gizps 的副本并在 .htaccess 文件中使用类似的内容:

<FilesMatch "\.css\.gz$">
   ForceType text/css
   AddEncoding gzip .gz
</FilesMatch>

<FilesMatch "\.html\.gz$">
    ForceType text/html
    AddEncoding gzip .gz
</FilesMatch>

RewriteEngine On
RewriteCond %HTTP:Accept-Encoding gzip
RewriteCond %REQUEST_FILENAME.gz -f
RewriteRule (.*\.(html|css))$ $1.gz [L]

这将为现有的 gzip 提供服务,而不是每天即时创建数千个 gzip。不过,您必须使用此方法创建 gzip。

【讨论】:

每天 1200 个请求不算什么。有些网站每秒都会这样做。他还说1200页浏览量。这不会对他的服务器造成影响。不仅如此,我们不知道这些观点中有多少是独一无二的。非唯一视图将被浏览器缓存,因此它甚至不会再次请求该文件。这么低的数字,他没有什么可担心的。 不,但在某些时候会引起关注。我们也不知道服务器上有多少个其他站点。这两种方法哪一种更快?

以上是关于使用 htaccess 进行 GZIP 压缩有啥限制吗?的主要内容,如果未能解决你的问题,请参考以下文章

apache_conf 启用GZIP压缩#optimization #gzip #htaccess

apache_conf gzip压缩.htaccess

apache_conf .htaccess Gzip压缩

如何为 .htaccess 文件中的某些媒体文件禁用 Apache gzip 压缩?

apache_conf htaccess中的gzip压缩

apache_conf 启用GZIP压缩(.htaccess)