【问题标题】:serving non-expiring content through Nginx and SEO optimization通过 Nginx 和 SEO 优化提供未过期的内容
【发布时间】:2013-02-19 03:09:44
【问题描述】:

我在 Webfaction 中通过 Apache 和 Nginx 提供我的内容。 Webfaction 仅支持其 Nginx 服务器的 'epxires_max' 指令用于所有静态内容(图像、css 文件、js 等)。

我试过 Google PageSpeed 工具,它说:

以下可缓存资源的新鲜度生命周期较短。 指定至少在未来一周内到期 以下资源:

然后列出它认为我需要指定其过期时间的大约 50 张图像。

所以我的问题是:

(a) 通过(Apache 和)Nginx(不包括 expires_max 指令)提供内容并使用 memcached,我是否还需要为我的静态内容指定更多过期信息?

(b) 除了 'expires_max' 我还有其他选择吗?

【问题讨论】:

    标签: django caching nginx seo


    【解决方案1】:

    如果您使用 NGINX 来提供所有静态内容,那么在服务器块中添加它应该可以解决问题:

    location ~* \.(?:css|js|gif|jpe?g|png)$ {
        expires max;
        add_header Cache-Control public;
    }
    

    【讨论】:

    • 谢谢,但是“服务器块”在哪里?我通过 Webfaction 提供服务,虽然我想你的意思是一些 .conf 文件,但你确定我可以访问它吗?
    • webfaction.com 将“完全 shell 访问”列为一项功能。很可能您应该可以访问 conffile。很可能是在/etc/nginx/sites-enabled/(通常每个站点有 1 个配置文件)
    • 谢谢,不幸的是 Nginx 是系统范围的安装,我无法配置自己的设置。但是,我可以安装自己的副本,但我没有时间。无论如何,马特的回答并没有回答我的问题(尽管知道这是一件好事)。
    • 啊,我明白了。不确定 Webfaction 是如何工作的,但如果您无法完全控制 Web 服务器,他们将始终对要删除哪些 HTTP 标头以及要留下哪些标头拥有最终决定权。无论如何,祝你好运,安装 NGINX 是小菜一碟。 :-)
    • jpe?g 没有为我提取 jpg - 但你的回答帮助我弄清楚“jpeg|jpg”确实得到了这两者......可能是我的服务器选项?
    【解决方案2】:

    基本上,过期信息是通过使用 http 标头指定的,特别是 ExpiresCache-Control 的某种组合,可能还有 Etag`Last-Modified。例如,请参阅http://www.mnot.net/cache_docs/,了解有关缓存如何工作以及标头含义的更多信息。

    设置这些标头通常是您在网络服务器配置中执行的操作:

    • 对于 Apache,您可以将必要的配置添加到您的主要 apache 配置(如果您有权访问),或者通过 .htaccess 文件。您可以在这些 .htaccess 文件中添加哪些指令取决于 AllowOverride 指令在主配置中的配置方式。
    • Nginx 需要访问主服务器配置文件,没有类似于 .htaccess 的机制(请参阅 http://wiki.nginx.org/LikeApache-htaccess 了解原因)

    换句话说,您需要联系 webfaction 支持(如果不在他们的常见问题解答中)并了解您可以选择哪些选项:

    • 您可以自己在主配置中添加内容吗? (我从马特的回答中收集到没有)
    • 如果通过票证请求,他们是否愿意将配置位添加到您的虚拟主机的配置中?
    • Apache 的 AllowOverride 设置为什么?因此,您可以为自己设置什么? (请参阅上面链接的 apache 文档)

    【讨论】:

    • 谢谢。确实,这非常有用。但我真的需要这样做吗?有必要吗?它会让我的网站更快吗? memcached+Nginx 还不够吗?
    • 您不需要需要(没有它您的网站也能正常工作),但您肯定想要它(因为它会减少延迟,从而使您的网站感觉更快)。基本上设置缓存标头允许代理和浏览器缓存在本地保存这些资源,这意味着在第二次访问时速度更快(由于消除了网络延迟),这也意味着他们没有使用您的服务器带宽来多次请求相同的东西次。
    猜你喜欢
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 2015-03-13
    • 1970-01-01
    • 2016-11-01
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多