`
wenluoxicheng
  • 浏览: 7800 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Nginx环境下flush失效问题

 
阅读更多

最近在用comethttp long poll请求,发现使用nginx反向代理时response.flushBuffer()失效了,请求一直返回504,而直接连接tomcat不会出现问题。

高开nginx日志,出现error:

   upstream timed out (10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond) while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /app/conn?cmd=revival&cid=96c6fc98-8101-4aa7-8482-f319615abc63&ram=0.9041435304097831 HTTP/1.1", upstream: "http://127.0.0.1:8280/app/conn?cmd=revival&cid=96c6fc98-8101-4aa7-8482-f319615abc63&ram=0.9041435304097831", host: "t.ganlanren.com", referrer: "http://***/app/index.html"

 

从错误找不到任何线索,返回去调试代码,发现nginx代理下response.flushBuffer()数据无法返回到客户端,通过抓包发现数据已经返回到nginx,而nginx未返回到客户端,再去看Nginx,有如下的设置:

  fastcgi_buffer_size 128k;
  fastcgi_buffers 8 128k;

问题基本找到了,Nginx会缓冲http输出的信息,当达到128k时才会将缓冲区的数据发送给客户端,那么我们首先需要将这个缓冲区调小,比如:

  fastcgi_buffer_size 4k;
  fastcgi_buffers 8 4k;

并且,必须禁用gzip

  gzip off;

调整nginx配置后测试,一切ok

 

分享到:
评论

相关推荐

    Nginx环境下PHP flush失效的解决方法

    在Nginx环境中,当你尝试使用PHP的`ob_flush`和`flush`函数进行逐行输出时,可能会遇到输出不实时的问题。这个问题通常与Nginx的内部缓冲机制有关。Nginx作为反向代理服务器,它会在接收到后端应用(如PHP-FPM)的...

    nginx反向代理导致session失效的问题解决

    一同事求援:后台系统的登录成功了,但不能成功登进系统,仍然跳转到登录页,但同一套代码另一个环境却没有问题。 背景 经了解,他对同一个项目使用tomcat部署了两个环境,一个在开发服务器上,一个在他本机,两个...

    nginx 配置跨域失效修复的方法示例

    nginx 配置跨域不生效 如下配置 server { listen 80; server_name localhost; # 接口转发 location /api/ { # 允许请求地址跨域 * 做为通配符 add_header 'Access-Control-Allow-Origin' '*'; # 设置请求...

    nginx系列(八)nginx失效转移与超时处理

    在本篇“nginx系列(八)nginx失效转移与超时处理”中,我们将深入探讨如何在Nginx服务器上配置失效转移和处理超时问题,这对于保障网站的高可用性和用户体验至关重要。Nginx作为一款高性能的反向代理服务器,其强大的...

    内网nginx全套安装环境

    在Linux环境下,编译Nginx源码时需要GCC(GNU Compiler Collection)作为C/C++编程语言的编译器。GCC不仅是开发者的必备工具,也是构建其他开源软件的基础。在没有预装GCC的系统上,需要先通过包管理器(如`apt-get...

    linux离线环境下nginx安装包-附带所有依赖环境和安装教程

    本文将详细介绍如何使用提供的Linux离线环境下Nginx安装包,包括所有必要的依赖环境和安装教程。 Nginx是一款高性能、轻量级的Web服务器和反向代理服务器,它以其高效稳定和低内存占用而闻名。在Linux系统中,Nginx...

    nginx安装, 解决跨域问题

    本篇将详细介绍如何在Linux环境下安装Nginx,并通过修改配置文件来解决跨域限制。 ### Nginx安装步骤 1. **更新系统包** 在安装Nginx之前,确保系统包是最新的: ``` sudo apt-get update sudo apt-get ...

    Nginx环境搭建

    在RHEL 6环境下搭建Nginx服务器,不仅可以提升网站的响应速度,还能有效降低服务器资源的消耗。通过理解Nginx的运行原理和配置方法,我们可以更好地利用Nginx提供的强大功能,构建高效稳定的Web服务环境。

    windows 环境下 nginx安装压缩包

    1、windows 环境下 nginx安装压缩包。 2、nginx.conf配置文件中有相关配置的注解说明,方便上手配置。 3、nginx.conf配置文件中的 域名 是通过 在hosts文件中添加 IP 和自定义域名的映射后配置的。

    Nginx部署及常见问题.zip

    Nginx部署及常见问题,Nginx部署及常见问题Nginx部署及常见问题Nginx部署及常见问题Nginx部署及常见问题Nginx部署及常见问题Nginx部署及常见问题Nginx部署及常见问题Nginx部署及常见问题Nginx部署及常见问题Nginx...

    linux下nginx的搭建

    Linux 下 Nginx 的搭建 ...Linux 下 Nginx 的搭建需要完成以下步骤:下载和解压 Nginx,创建 Nginx 管理目录,安装 Nginx 所需环境,配置 Nginx,启动 Nginx,查看 Nginx 访问日志,并与 Tomcat 进行集成。

    windows server 2012 R2服务器下配置php7+nginx1.1环境

    ### Windows Server 2012 R2 下配置 PHP7 + Nginx1.1 环境 在本文中,我们将详细介绍如何在 Windows Server 2012 R2 操作系统上配置 PHP7 和 Nginx1.1 的运行环境。这种组合常用于搭建高效的 Web 应用程序服务器,...

    国产化环境麒麟v10系统arm64下安装nginx所有依赖

    在这样的环境下安装和运行像Nginx这样的网络服务器,对于构建自主可控的IT基础设施至关重要。本文将详细介绍如何在麒麟V10 arm64系统上安装Nginx所需的所有依赖。 首先,让我们了解Nginx。Nginx是一款开源的高性能...

    Windows、Nginx、MySQL、PHP集成环境

    Windows、Nginx、MySQL、PHP集成环境 解压即可使用 版本信息: nginx 1.5.8 php 5.2.16 x86 start_nginx.bat启动wnmp集成环境 stop_nginx.bat关闭wnmp集成环境

    内网安装nginx(离线)

    内网安装Nginx(离线)是一种常见的情况,特别是在企业环境中,由于安全...通过以上步骤,你可以在内网环境下成功地安装和配置Nginx,实现离线安装和集群部署。这种方法对于保障内网环境的安全性和高效运营至关重要。

    ruby on rails环境搭建学习笔记;passenger+nginx环境配置

    ### Ruby on Rails 环境搭建与 Passenger+Nginx 配置详解 #### 一、Ruby on Rails 开发环境搭建 在进行 Ruby on Rails 的开发之前,首先需要完成一系列的基础软件安装工作,包括但不限于 Ruby 语言环境、Rails ...

    nginx安装环境及nginx_1.18.0安装包

    在本主题中,我们将详细探讨Nginx的安装环境以及如何安装`nginx_1.18.0`版本。 首先,让我们了解必要的安装环境。在Linux系统上安装Nginx,通常需要以下组件: 1. **GCC (GNU Compiler Collection)**:GCC是用于...

Global site tag (gtag.js) - Google Analytics