【问题标题】: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

提前感谢您的任何建议。

戴夫

【问题讨论】:

    标签: apache .htaccess compression gzip deflate


    【解决方案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页浏览量。这不会对他的服务器造成影响。不仅如此,我们不知道这些观点中有多少是独一无二的。非唯一视图将被浏览器缓存,因此它甚至不会再次请求该文件。这么低的数字,他没有什么可担心的。
    • 不,但在某些时候会引起关注。我们也不知道服务器上有多少个其他站点。这两种方法哪一种更快?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    • 2012-12-09
    • 2013-05-17
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    相关资源
    最近更新 更多