Lighttpd反向代理将HTTP / 1.1请求转换为1.0

时间:2014-02-10 12:52:14

标签: nginx lighttpd playframework-2.2

我正在使用lighttpd作为一组Play实例的反向代理,目前版本为2.1.1。 Play应用程序使用分块传输编码来执行COMet(服务器推送)。 Lighttpd版本是1.4.28(Ubuntu 12.04的最新支持版本)。

此设置运行良好,但现在我正在升级到Play Framework 2.2.1。 play框架现在强制执行chunked响应必须响应HTTP / 1.0请求(请参阅https://github.com/playframework/playframework/commit/5131c46626b82f966a9b7894cf9bfcdc1b464f3e),结果发现我的lighttpd代理正在将HTTP / 1.1请求转换为HTTP / 1.0。 Play的确切响应为505,消息为“The response to this request is chunked and hence requires HTTP 1.1 to be sent, but this is a HTTP 1.0 request.”。

那么接下来呢?我不知道我的哪个替代品(获取最新版本的lighttpd,切换到nginx)可能会有效。

更新:lighttpd看起来并不乐观,因为mod_proxy.c有HTTP / 1.0硬编码,即使它确实处理了分块编码。

1 个答案:

答案 0 :(得分:5)

我用Nginx替换Lighttpd作为我的反向代理解决了这个问题。这是确切的Nginx配置节,它将在server部分内:

location / {
    proxy_http_version 1.1;    
    proxy_pass http://127.0.0.1:8080;
}