http协议版本号导致的问题

一台小内存(主要是想说在小内存的机器上使用apache2作为后端关闭keep-alive比php-fpm稳定的多)机器上使用nginx作为前端,apache2作为后端。

今天在部署一个网站(基于slim framework)的时候访问提示如下错误:

内容编码错误
无法显示您尝试查看的页面,因为它使用了无效或者不支持的压缩格式。

网上搜了一些结果大部分都是碰到gzip头空白的问题。
搜索了一下代码并无相关gzip操作的代码。

遂继续搜索header操作的代码,发现一个Slim_Http_Response类里的属性$httpVersion默认是1.1,而nginx不支持1.1的后端服务。
于是就会提示错误。

相关链接:http://wiki.nginx.org/HttpProxyModule

It is an HTTP/1.0 proxy without the ability for keep-alive requests yet. (As a result, backend connections are created and destroyed on every request.) Nginx talks HTTP/1.1 to the browser and HTTP/1.0 to the backend server. As such it handles keep-alive to the browser.


评论

《“http协议版本号导致的问题”》 有 1 条评论

  1. 照理,相应的http version应该是不大于请求的。
    nginx的proxy目前不支持chunked传输,所以就不支持http 1.1后端。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注