Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用AWS Beanstalk';要安装mod_pagespeed Apache模块吗?_Apache_Amazon Web Services_Amazon Elastic Beanstalk_Mod Pagespeed - Fatal编程技术网

是否可以使用AWS Beanstalk';要安装mod_pagespeed Apache模块吗?

是否可以使用AWS Beanstalk';要安装mod_pagespeed Apache模块吗?,apache,amazon-web-services,amazon-elastic-beanstalk,mod-pagespeed,Apache,Amazon Web Services,Amazon Elastic Beanstalk,Mod Pagespeed,我在Django/Python应用程序中使用AWS Beanstalk,我想使用Google的mod_pagespeed模块。是否可以使用.ebextensions/.config文件安装并运行mod_pagespeed?下载该软件包 将rpm添加到您的ebextensions目录中 在.ebextensions目录中创建.config文件 向配置文件中添加如下命令: container_commands: 01-command: command: rm -

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

下载该软件包

将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文件名。

好的,我想添加Charlie Smith的答案。我建议您确保打开了以下各项

  • mod_deflate-您可能想要Gzip您的html、css、xml和javascript
  • 如果使用CDN(例如AWS CloudFront),请在Apache.conf中启用重写域过滤器
  • 为图像和css设置一个短缓存控件,以便在打开extend_缓存过滤器时pagespeed能够扩展缓存
  • 我还喜欢重写javascript、dns预取、折叠空白和组合javascript过滤器
  • 下面是GitHub gist,它们向您展示了它是如何完成的

    • (它们与查理的基本相同)

      • 谢谢大家!根据您的回答@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
        

        您可以通过URL安装软件包。因此,您不必下载和分发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文件中的files条目。

        这能确保它也被启用吗?rpm会为您安装.conf文件,如果您发现需要重新启动apache,请在.config文件中添加另一个命令“apachectl restart”,我建议将命令重写到bash脚本中,因为container_命令可以在部署时随时运行。Bash脚本可以检查它是否首次运行,然后安装必要的更改。这将有助于减少部署过程中的停机时间。@Vadim911您的说法似乎自相矛盾——“部署”只是第一次;这就是beanstalk在自动伸缩行为中使用的内容,因此.ebextensions最常在初始部署之外使用。你能澄清一下你的帖子吗?在我看来,man2xxl的目标是正确的。@Ricalsin当我说“部署”时,我的意思是当您将带有.ebextensions的捆绑包和应用程序部署到beanstalk时的过程。这假设您的repo根目录中包含mod_pagespeed rpm。