如何在Amazon Beanstalk和Tomcat上启用HTML/JavaScript/CSS的gzip
How do you enable gzip of HTML/JavaScript/CSS on Amazon Beanstalk and Tomcat
我想在我的战争中压缩JavaScript,HTML,CSS,然后再通过网络。 标准网络的东西。Beanstalk使用AMI来扩大规模。
我看到了如何创建新 AMI 的说明,但我什至没有看到 Tomcat 的位置。 在撰写本文时,当前的 AMI 是 Tomcat 7 部署的 ami-1a249873。
我会自己回答这个问题。 为了让每个人都清楚,您可以连接到您的 EC2 实例,即使它们由 beanstalk 管理。 这很有帮助,因为您可以看到事物的位置。 在这种情况下,我不知道Apache被用作tomcat的网络服务器,不得不搜索它,但你可以在这里找到它,就像今天一样:
/etc/httpd
找到此类信息后进行更改:
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers.html
如果在项目的根目录下创建一个名为 .elasticbeanstalk 的文件夹,然后创建一个名为 myapp.config 的文件。
设置阿帕奇:
cp conf/httpd/conf.d/enabledeflate.conf /etc/httpd/conf.d/enabledeflate.conf
然后创建 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>
几点注意事项:
您可能需要在首次部署时重新启动 apache。
确保将 .elasticbeanstalk 放在 war 文件(或 git 存储库)的根目录中
添加到詹姆斯答案
更简洁的方法是创建配置文件
.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>
我还添加了WSGIPassAuthorization On,以防您需要使用jwt auth将其用于django-rest-framework。
比 http://www.tonmoygoswami.com/2013/05/how-to-enable-gzip-on-amazon-elastic.html 更好的地方
了为了你的答案
您可以从 https://console.aws.amazon.com/elasticbeanstalk/重新启动服务器
单击应用程序名称,然后从右上角单击操作下拉按钮和"重新启动服务器"
似乎有几种方法可以做到这一点,但没有完整的复制和粘贴解决方案。所以这是我的,工作没有任何问题。
创建的文件.ebextensions/01-environment.config
添加了以下内容:
# Enable Server-side Compression
files:
"/etc/httpd/conf.d/enable_mod_deflate.conf":
mode: "000644"
owner: root
group: root
content: |
<IfModule mod_deflate.c>
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
DeflateCompressionLevel 9
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4'.0[678] no-gzip
BrowserMatch 'bMSI[E] !no-gzip !gzip-only-text/html
<IfModule mod_headers.c>
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>
</IfModule>
container_commands:
02_restart_apache:
command: sudo apachectl restart
这是做什么的?
- 创建具有正确权限的文件
/etc/httpd/conf.d/enable_mod_deflate.conf
- 在文件内添加压缩内容
- 最后创建一个
container_commands
(链接到此处的命令和命令之间的区别),以重新启动 apache 服务器。这是显示效果所必需的,也很重要,因为如果您正在自动扩展并且另一个实例被启动,这也将创建此文件,然后在新实例上重新启动 apache。否则,实例将不会重新启动,需要手动重新启动。
- 来自文本输入null的html javascript变量
- Html/Javascript-如何屏蔽除英国以外的所有欧盟国家,并允许所有非欧盟国家
- html+javascript:如何在某些条件下禁用dropdownlist中的null选项
- 在HTML/JavaScript中,有没有一种方法可以在图像开始加载时知道图像的最终布局尺寸
- HTML/Javascript表单会自动重置
- html/javascript中的可拖动文本
- 在HTML/JavaScript中减去两个数字
- 基本的HTML Javascript程序.这是怎么回事
- 一个html/javascript'小工具'知道用户何时单击了小部件外的任意位置
- HTML/JavaScript拖动&Drop-是否可以使重影图像*NOT*看起来'冲洗掉'
- 在HTML/Javascript文件中获取App Inventor 2变量值
- HTML/JavaScript表格标题
- 如何修复在浏览器中打开后出现在屏幕上的html/Javascript代码
- 在HTML JavaScript头部分运行Google脚本函数
- 如何在 html/javaScript/Jquery 中“浏览文件夹”
- 带有消息html/javascript的进度条
- 在html/javascript中请求撤消/重做事件
- 使用HTML/Javascript表单使用ActiveXObject创建带有嵌入图像的outlook电子邮件
- 使用html/javascript启动小部件
- 移动html/javascript编程中的变量传递