【问题标题】:Using gzip in AWS ElasticBeanstalk Nginx在 AWS ElasticBeanstalk Nginx 中使用 gzip
【发布时间】:2021-04-23 13:37:49
【问题描述】:

我有一个 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,但没有运气。 This 教程说对于最新版本的 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 是否正确?

任何帮助将不胜感激!

【问题讨论】:

  • 如果你ssh进入EB实例,你可以手动设置nginx使其工作吗?这样你至少可以确认你想使用的选项。
  • 我遇到了类似的问题并写了一个要点总结如何更改 Amazon Linux 2 的 nginx 配置。您可以在这里找到它:gist.github.com/henhan/2943013c9064606425b0ee5bb1ca8c99

标签: amazon-web-services nginx amazon-elastic-beanstalk gzip


【解决方案1】:

在网上搜索了在 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;

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

【讨论】:

  • 您不应该触摸 ElasticBeanstalk 实例上的任何东西。这些实例由于扩展而不断上升和下降,配置文件更改将丢失。您应该使用 .ebextentions
猜你喜欢
  • 1970-01-01
  • 2021-05-19
  • 2020-11-04
  • 2020-12-14
  • 2017-05-30
  • 2016-09-20
  • 2021-06-26
  • 2016-08-02
  • 2018-03-28
相关资源
最近更新 更多