Nginx:proxy_set_header“升级”减慢了服务器速度

Nginx:proxy_set_header“升级”减慢了服务器速度

我有一个网站,想使用基于 WebSocket 的功能来增强它。该网站位于 Nginx 反向代理后面。

我的服务器配置如下:

    location / {
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_ignore_client_abort on;
        proxy_redirect http://weblogic:8080/ $scheme://$host:$server_port/;
        proxy_pass http://weblogic:8080/;

        access_log  /var/log/nginx/weblogic.frontend.access.log  main;
    }

有问题的更改是proxy_set_header Connection "Upgrade";行。这是我因为 WebSocket 而添加的行。

我试过了,它确实有效,但问题是,一旦配置中有这行代码,每次重定向都会变得非常慢。几秒钟内完成的请求现在需要半分钟才能完成。我该如何避免这个问题,同时又能使用 WebSocket?

附言:我做了进一步的测试,可以确认只有返回 302 的请求才会很慢。我尝试将属性更改proxy_redirect为不使用变量的属性,但运气不佳。

答案1

我找到了一个解决方案。我不知道它是否“解决”了这个问题,但到目前为止,它确实很好地掩盖了这个问题。

我所做的是将 websocket 通信放在具有上述设置的不同位置,而非 websocket 位置保持正常proxy_pass

请详细说明,如果这个解决方案真的只是在粉饰太平

相关内容