Java 对反向代理后面的restlet服务器的请求从未完成

Java 对反向代理后面的restlet服务器的请求从未完成,java,nginx,restlet,Java,Nginx,Restlet,我对反向代理后面的Java Restlet服务器有一个非常奇怪的问题 我正在使用nginx将URL重定向到端口8182上的Restlet服务器。服务器的配置如下所示: server { listen 8080; server_name localhost; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarde

我对反向代理后面的Java Restlet服务器有一个非常奇怪的问题

我正在使用nginx将URL重定向到端口8182上的Restlet服务器。服务器的配置如下所示:

server {
    listen       8080;
    server_name  localhost;

    location / {

        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  Host $http_host;
        proxy_redirect  off;

        allow all;
        root   C:/Users/Cyrille/www;
        index  index.html index.htm;
    }


    location /proxy/ping {
            proxy_pass http://localhost:8182/ping;
    }
}
当我打开浏览器或使用wget访问
http://localhost:8080/proxy/ping
,请求被代理到Restlet。它只回答“pong”,其日志显示:

Oct 29, 2013 11:45:04 AM org.restlet.engine.log.LogFilter afterHandle
INFO: 2013-10-29    11:45:04    127.0.0.1   -   -   8182    GET /ping   -   200 4   -   6   http://localhost:8182   Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36   -
问题是浏览器似乎从未收到响应。它只是在几分钟后超时,出现错误504:网关超时。如果我直接访问
http://localhost:8182/ping
,请求立即完成


何时可以阻止请求?我已禁用任何防火墙或防病毒。我将nginx与Apache进行了交换,获得了完全相同的行为。我使用的是Windows 8。

事实证明这是Restlet中的一个错误:当HTTP头包含“Connection:Close”时,服务器将不会发送响应

我通过以下修改使Nginx不发送此标题,它成功了

location /proxy/ping {
        proxy_pass http://localhost:8182/ping;
        proxy_set_header Connection "";
}
以下是Restlet bug的链接(在它被打开3年后仍未修复):