你如何在amazon beanstalk和tomcat上启用html/javascript/css的gzip

Jam*_*mes 18 javascript gzip amazon-ec2 amazon-web-services amazon-elastic-beanstalk

我看到了有关如何创建新AMI的说明,但我甚至没有看到tomcat的位置.截至本文撰写时,目前的ami是用于tomcat 7部署的ami-1a249873

Jam*_*mes 19

我会自己回答这个问题.对每个人来说都很清楚,即使它们是由beanstalk管理的,你也可以连接到你的EC2实例.这很有用,因为您可以看到事物的位置.在这种情况下,我不知道Apache被用作tomcat的web服务器并且必须搜索它,但你可以在今天找到它:

在/ etc/httpd的

一旦找到这样的信息,即可进行更改:http:
//docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers.html

如果在项目的根目录中创建名为.elasticbeanstalk的文件夹,然后创建名为myapp.config的文件.

安装Apache:

cp conf/httpd/conf.d/enabledeflate.conf /etc/httpd/conf.d/enabledeflate.conf
Run Code Online (Sandbox Code Playgroud)

然后使用以下内容创建enabledeflate.conf:

SetOutputFilter DEFLATE
# mod_deflate configuration
<IfModule mod_deflate.c>
    # Restrict compression to these MIME types
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/xml+rss
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE text/javascript
    AddOutputFilterByType DEFLATE text/css
    <IfModule mod_headers.c>
        # Make sure proxies don't deliver the wrong content
        Header append Vary User-Agent env=!dont-vary
    </IfModule>
</IfModule>
Run Code Online (Sandbox Code Playgroud)

几个注意事项:
您可能需要在第一次部署时重新启动Apache.
确保将.elasticbeanstalk放在war文件的根目录(或git repo)中

  • "操作>重新启动应用程序服务器"仅重新启动tomcat.要重新启动apache,你必须对每个服务器执行`ssh`并运行`sudo apachectl restart` (5认同)

Dr *_*tan 9

加上詹姆斯回答

更简洁的方法是创建配置文件

.ebextensions/wsgi_custom.config

把它放在那里

files:
  "/etc/httpd/conf.d/wsgi_custom.conf":
    mode: "000644"
    owner: root
    group: root
    content: |
      WSGIPassAuthorization On

      LoadModule deflate_module modules/mod_deflate.so

      SetOutputFilter DEFLATE

      # mod_deflate configuration
      <IfModule mod_deflate.c>
          # Restrict compression to these MIME types
          AddOutputFilterByType DEFLATE text/plain
          AddOutputFilterByType DEFLATE text/html
          AddOutputFilterByType DEFLATE application/xhtml+xml
          AddOutputFilterByType DEFLATE text/xml
          AddOutputFilterByType DEFLATE application/xml
          AddOutputFilterByType DEFLATE application/xml+rss
          AddOutputFilterByType DEFLATE application/x-javascript
          AddOutputFilterByType DEFLATE text/javascript
          AddOutputFilterByType DEFLATE text/css
          <IfModule mod_headers.c>
              # Make sure proxies don't deliver the wrong content
              Header append Vary User-Agent env=!dont-vary
          </IfModule>
      </IfModule>
Run Code Online (Sandbox Code Playgroud)

我还添加了WSGIPassAuthorization On,以防你需要使用jwt auth将它用于django-rest-framework


Sab*_*bir 5

没有比http://www.tonmoygoswami.com/2013/05/how-to-enable-gzip-on-amazon-elastic.html更好的地方了.

为你的答案

您可以从https://console.aws.amazon.com/elasticbeanstalk/重新启动服务器

单击应用程序名称,然后从右上角单击操作下拉按钮和"重新启动服务器"

  • 请注意上面的链接建议gzipping png,jpeg和gif,它们已经是压缩格式.你会浪费你的服务器的CPU周期. (3认同)