0

我正在使用带有码头 servlet 的 nginx 实现。

出于我项目的目的,我需要初始化与码头 servlet 的两个连接并保持它们打开。为了初始化下行链路,我使用了一个正常的请求,然后我得到了输入流。为了初始化上行链路,我使用了分块编码请求。

我使用 1.4.6 的 nginx 版本,因此无论我在服务器定义中设置它,都应该默认设置分块编码。

 #HTTPS server

server {
    listen 443;
    listen [::]:443;
    server_name  localhost;

    ssl                  on;
    ssl_certificate      /etc/nginx/ssl/server.crt;
    ssl_certificate_key  /etc/nginx/ssl/server.key;

    ssl_session_timeout  5m;

    ssl_protocols  SSLv2 SSLv3 TLSv1;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;
    location / {
        proxy_http_version 1.1;
        expires off;
        proxy_buffering off; 
        chunked_transfer_encoding on;
        proxy_pass      https://127.0.0.1:8080;
    #    root   html;
    #    index  index.html index.htm;
    }
}

我已经搜索了所有论坛,但仍然找不到解决方案。启用分块编码、代理缓冲等。我无法让它工作。我还进行了简单的测试,以确保不是我的应用程序实现以某种方式阻止它并且它仍然无法正常工作。

还有什么我可以尝试的吗?

4

1 回答 1

0

于是我也在nginx论坛上发帖,得到了回复。我特别寻找的东西称为“无缓冲上传”,这是目前 nginx 不提供的功能。

使用 websockets 是不可能的,因为稍后这个原型需要在使用 http 协议的更大更老的系统中实现。所以这个问题的答案是“nginx”是不可能的。对于面临相同问题的任何人来说,一个可能的解决方法是使用 tengine,它是一个 nginx 分支。

于 2014-09-16T08:56:34.493 回答