AWS Elastic Beanstalk中NGINX types_hash警告的解决方法咨询
解决AWS Elastic Beanstalk上NGINX的types_hash警告
警告是什么意思
这个NGINX警告是说,处理MIME类型映射的哈希表默认大小不够,没法生成最优的哈希结构。虽然当前服务能正常运行,但长期来看可能拖慢NGINX性能,后续如果添加更多MIME类型,甚至可能引发配置错误。
修复步骤(用Elastic Beanstalk的.ebextensions配置)
按以下步骤操作就能解决:
- 在你的项目根目录新建
.ebextensions文件夹(如果还没有的话) - 在这个文件夹里创建一个名为
nginx_types_hash.config的文件(文件名随便取,只要后缀是.config就行) - 把下面的内容复制到这个config文件里:
files: "/etc/nginx/conf.d/00_types_hash_fix.conf": mode: "000644" owner: root group: root content: | types_hash_max_size 2048; types_hash_bucket_size 128;
这个配置会在NGINX的conf.d目录下生成一个自定义配置文件,自动覆盖默认的types_hash参数。这里设置的2048和128足够解决绝大多数场景的问题。
- 把
.ebextensions文件夹和你的项目代码打包在一起,重新部署到Elastic Beanstalk - 部署完成后,再看error.log,这个警告就会消失了
额外说明
Elastic Beanstalk会在每次部署时重置默认的NGINX配置,所以不能直接修改主配置文件。用.ebextensions生成的自定义配置文件会被NGINX自动加载,而且不会被平台更新覆盖。如果之后还出现类似警告,可以适当调大这两个参数的值,比如把types_hash_max_size改成4096,types_hash_bucket_size改成256。
内容的提问来源于stack exchange,提问作者Samuel Davies
相关产品推荐
相关产品推荐

