首页 > 解决方案 > 在 AWS ElasticBeanstalk Nginx 中使用 gzip

问题描述

我有一个 Python 3.7 的 AWS EB 环境,运行 Amazon Linux 2/3.1.2,使用 Nginx 作为代理服务器。我正在尝试为我的应用程序添加 gzip 压缩。我在网上尝试了几个教程,但它们似乎都不适合我。我也是 AWS 的新手,所以可能不熟悉它的一些服务。

目前,我有一个这样的目录树:

-- .ebextensions
-- .platform
   -- nginx
     -- conf.d
        -- gzip.conf
-- (other files)

我尝试在其中添加一个配置文件.ebextensions来创建一个.conf以启用 gzip 压缩,但它似乎不起作用。我也尝试将代理切换到 Apache,但没有运气。教程说对于最新版本的 Amazon Linux 2,nginx 配置文件应该放在.platform文件夹中,所以我按照说明进行了操作。但是,我的gzip.conf文件似乎仍然无法正常工作 - 文件仍然以其原始格式呈现。

目前我的gzip.conf

gzip on;
gzip_vary on;
gzip_min_length 10240;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/html text/css text/xml text/javascript application/x-javascript application/xml;
gzip_disable "MSIE [1-6]\.";

编辑:我通过 SSH 连接到我的 eb 实例,发现该文件位于/etc/nginx/conf.d/gzip.conf并且内容与我上传的相同。这条路径对启用 gzip 是否正确?

任何帮助将不胜感激!

标签: amazon-web-servicesnginxamazon-elastic-beanstalkgzip

解决方案


在网上搜索了在 AWS 中使用 SSH 的指南后,我能够通过 ssh 进入我的 EB 实例,发现问题出在文件/etc/nginx/nginx.conf中,其中包含默认设置gzip off。由于某种原因,我对这个文件的扩展没有覆盖这个设置。

感谢@Marcin 建议在 SSH 中进行设置。我获得了一份副本nginx.conf并将其添加到我的项目目录.platform/nginx中,将 gzip 的原始设置注释掉,并将其更新为以下内容:

#Original Settings
#gzip                  off;
#gzip_comp_level       4;
#gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;

#New Settings
gzip on;
gzip_static on;
gzip_comp_level 9;
gzip_proxied any;
gzip_types application/javascript application/rss+xml application/vnd.ms-fontobject application/x-font application/x-font-opentype application/x-font-otf application/x-font-truetype application/x-font-ttf application/x-javascript application/xhtml+xml application/xml application/json font/opentype font/otf font/ttf image/svg+xml image/x-icon text/css text/html text/javascript text/plain text/xml;

部署后,终于成功了!希望这会帮助其他有同样问题的人。


推荐阅读