AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 587386
Accepted
ngw
ngw
Asked: 2014-04-09 00:01:03 +0800 CST2014-04-09 00:01:03 +0800 CST 2014-04-09 00:01:03 +0800 CST

上游响应缓冲到临时文件

  • 772

我有一个相当大且速度较慢(复杂数据,复杂前端)的 Web 应用程序内置RoR并作为反向代理Puma提供服务。nginx查看nginx错误日志,我看到很多条目,例如:

2014/04/08 09:46:08 [warn] 20058#0: *819237 an upstream response is buffered to a temporary file 
    /var/lib/nginx/proxy/8/47/0000038478 while reading upstream, 
    client: 5.144.169.242, server: engagement-console.foo.it, 
    request: "GET /elements/pending?customer_id=2&page=2 HTTP/1.0", 
    upstream: "http://unix:///home/deployer/apps/conversationflow/shared/sockets/puma.sock:/elements/pending?customer_id=2&page=2", 
    host: "ec.reputationmonitor.it", 
    referrer: "http://ec.foo.it/elements/pending?customer_id=2&page=3"

我很好奇,因为对于不同的用户和不同的用户交互,页面不太可能保持不变,而且我认为在磁盘上缓冲响应不是必要/有用的。

我知道proxy_max_temp_file_size并将其设置为 0,但在我看来有点尴尬(我的代理尝试缓冲但没有文件可以缓冲到...怎么能更快?)。

我的问题是:

  1. 如何删除 [warn] 并避免缓冲响应?关闭proxy_buffering还是设置proxy_max_temp_file_size为0更好?为什么?

  2. 如果nginx缓冲响应:它何时为缓冲的响应提供服务,向谁提供服务,为什么?

  3. 为什么默认nginx打开proxy_buffering,然后如果它确实缓冲了响应,则向您发出警告?

  4. 响应何时触发该选项?何时需要>几秒钟(多少?)来提供响应?这是可配置的吗?

TIA,NGW。

nginx
  • 2 2 个回答
  • 173748 Views

2 个回答

  • Voted
  1. Best Answer
    VBart
    2014-04-09T03:17:58+08:002014-04-09T03:17:58+08:00
    1. 如何删除 [warn] 并避免缓冲响应?关闭 proxy_buffering 或将 proxy_max_temp_file_size 设置为 0 更好吗?为什么?

    您应该设置proxy_max_temp_file_size为 0 才能将其删除。该proxy_buffering指令与警告没有直接关系。您可以将其关闭以完全停止任何缓冲,但通常不建议这样做(除非Comet需要它)。

    1. 如果 nginx 缓冲一个响应,它什么时候提供缓冲的响应,给谁,为什么?

    它会立即提供响应,但客户端的连接速度通常要慢得多,并且无法像应用程序生成响应数据那样快地使用响应数据。Nginx 尝试缓冲整个响应以尽快释放您的应用程序。

    另见:http ://aosabook.org/en/nginx.html

    1. 为什么nginx默认打开proxy_buffering,然后如果它确实缓冲了响应,就会[警告]你?

    正如我已经提到的,proxy_buffering与警告没有直接关系。优化代理操作通常需要它,关闭它会降低性能和吞吐量。

    Nginx 仅在响应不适合配置的内存缓冲区时向您发出警告。如果对您没问题,您可以忽略该警告。

    1. 响应何时触发该选项?何时需要超过几秒钟(多少?)来提供响应?这是可配置的吗?

    它在内存缓冲区已满时触发。请看文档,解释了整个机制:http: //nginx.org/r/proxy_max_temp_file_size

    您可能想要增加内存缓冲区。

    • 111
  2. Haluk
    2016-07-05T07:51:33+08:002016-07-05T07:51:33+08:00

    以下配置在我的服务器上运行良好。

    proxy_buffers 16 16k;  
    proxy_buffer_size 16k;
    
    • 29

相关问题

  • Gzip 与反向代理缓存

  • nginx 作为代理的行为

  • Nginx 学习资源 [关闭]

  • 提供 70,000 个静态文件 (jpg) 的最佳方式?

  • 在 Apache、LightTPD 和 Nginx Web 服务器上提供 PHP 5.x 应用程序的现状?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve