是否可以使用AWS Beanstalk的.ebextensions配置来安装mod_pagespeed Apache模块?

时间:2013-04-17 17:33:19

标签: apache amazon-web-services elastic-beanstalk mod-pagespeed

我正在使用AWS Beanstalk作为我的Django / Python应用程序,我想使用Google的mod_pagespeed模块。是否可以使用.ebextensions / .config文件安装和运行mod_pagespeed?

4 个答案:

答案 0 :(得分:6)

下载软件包

将rpm添加到您的ebextensions目录

在.ebextensions目录中创建一个.config文件

将命令添加到配置文件中,如下所示:

container_commands:
    01-command:
        command:        rm -rf /pagespeed/ebextensions

    02-command:
        command:        mkdir -p /pagespeed/ebextensions

    03-command:
        command:        cp -R .ebextensions/* /pagespeed/ebextensions/

    04-command:
        command:        rpm -U /pagespeed/ebextensions/mod-pagespeed.rpm

确保命令按所示缩进,没有制表符,否则无效。

交换“mod-pagespeed.rpm”,无论实际的rpm文件名是什么。

答案 1 :(得分:3)

好的,我想添加查理史密斯的答案。我建议你确保你打开了以下内容。

  1. mod_deflate - 你可能想要gzip你的html,css,xml和javascript。
  2. 如果您使用CDN(例如AWS CloudFront),则在您的Apache.conf中启用重写域过滤器
  3. 为images和css设置一个简短的缓存控制,这样,当你打开extend_cache过滤器时,pagespeed就可以扩展缓存。
  4. 我也喜欢rewrite_javascript,dns_prefetch,collapse_whitespace和combine_javascript过滤器。
  5. 以下是GitHub Gists,向您展示它是如何完成的。

答案 2 :(得分:3)

谢谢你们!我的回答是@ man2xxl。

你不必乱用/ pagespeed / extensions目录,beanstalk .ebextensions配置可以简单地:

packages:
  yum:
    at: []

10_setup_apache_for_mod_pagespeed:
  command: "cp enable_mod_pagespeed.conf /etc/httpd/conf.d"
20_install_mod_pagespeed:
  command: rpm -U -iv --replacepkgs mod-pagespeed-*.rpm
30_clear_mod_pagespeed_cache:
  command: touch /var/cache/mod_pagespeed/cache.flush

答案 3 :(得分:1)

您可以按网址安装软件包。因此您无需下载和分发RPM。这样的事情有效:

packages:
    rpm:
        pagespeed: https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm
files:
    "/etc/httpd/conf.d/zzzz-pagespeed-options.conf":
        mode: "00644"
        owner: root
        group: root
        encoding: plain
        content: |
            # put your pagespeed configuration here

请注意,我将文件命名为zzzz-pagespeed-options.conf,以便httpd服务器最后加载它。

这样做的另一个好处是你真的不需要包含任何命令或担心复制文件 并维护.ebextensions文件夹中的文件。您只需更新.config文件中的文件条目。