node.js – 无法使用gzip为nginx中的分块传输编码关闭从Node后端提供的静态资产
我们有一个Node / express Web应用程序,除了正常内容之外,还通过express.static()提供静态资产.前面有一个nginx服务器,当前配置为gzip这些静态资产请求,如果用户代理为它. 但是,虽然nginx正在按预期执行gzip,但是它会从原点删除Content-Length标头,并设置Transfer-Encoding:chunked.这打破了我们CDN的缓存. 以下是典型静态资产请求(本例中为JS文件),节点后端和nginx的响应: 请求:
节点的响应标头:
响应来自nginx的标题:
我们当前的静态资产位置的nginx配置如下所示: nginx配置:
从上面的配置中可以看出,即使我们根据nginx文档显式设置chunked_transfer_encoding为这些路径,启用了proxy_buffering,并且具有足够大的proxy_buffers大小,响应仍然被分块. 我们在这里失踪了什么? – 编辑1:版本信息 –
– 编辑2:nginx gzip config–
你是对的,让我详细说明.
标头是第一个需要发送的东西.但是,由于您正在使用流式压缩,因此最终大小不确定.您只知道未压缩资产的大小,并且发送内容长度太大也不正确. 因此,有两种选择: >转移编码分块 目前,你正在经历第一种情况,听起来你真的需要第二种情况.得到第二个案例的最简单方法是打开gzip_static,因为@kodeninja在评论中说. (编辑:岳阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 是否可以在不安装卷的情况下将请求传递给php-fpm
- ruby-on-rails – 用Bundler安装Gems ==大问题
- apache – Symfony2:由于已经发送了标头,因此无法启动会话
- php5-fpm nginx google bot =连接由同行重置
- ruby-on-rails – 如何在不杀死主进程的情况下重新加载Unic
- php-Nginx损坏了下载的文件
- 如何在一个容器中使用Nginx,在另一个容器中使用php-fpm?
- nginx“server_tokens”配置被忽略
- node.js – 您是否设法在Heroku上设置节点nginx代理?
- nginx – uWSGI / Emperor:UnicodeEncodeError:’ascii’
- ruby-on-rails – 使用capistrano重新启动Rails应
- drupal – 如何为挂起的网站调试nginx / php-fpm
- python – Django,uwsgi和nginx – 内部服务器错
- linux – 如何处理Varnish堆栈中的Cookie
- ruby-on-rails – Puma /缺少日志
- 如何配置nginx从其他文件夹加载try_files?
- ruby-on-rails – mod_rails和Paperclip问题Pape
- ruby-on-rails-使用Passenger和Nginx将Rails应用
- 从Apache到Nginx的大括号({和})重写规则.
- 基于Git的网站部署工作流程