我正在使用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硬编码,即使它确实处理了分块编码。
答案 0 :(得分:5)
我用Nginx替换Lighttpd作为我的反向代理解决了这个问题。这是确切的Nginx配置节,它将在server
部分内:
location / {
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:8080;
}