代码之家  ›  专栏  ›  技术社区  ›  Paolo

了解NGINX的fastcgi_read_超时

  •  0
  • Paolo  · 技术社区  · 6 年前

    我正在“微调”通过NGINX提供的PHP web应用程序,并将PHP fpm作为FastCGI服务器。

    从…起 the documentation :

    fastcgi_read_timeout

    定义从FastCGI服务器读取响应的超时。

    到现在为止,一直都还不错。但是。。。

    超时仅在两次连续读取操作之间设置,不用于传输整个响应。

    PHP脚本开始发送数据(nginx读取),然后暂停(计算时间),然后发送更多数据(nginx读取)。如果暂停时间超过指定的时间,则连接将断开。

    这是正确的解释还是我遗漏了什么?

    exaclty是什么意思?” 在两次读取操作之间 " ?

    “整个反应”的持续时间不是很重要吗?什么参数设定了这个限制?

    0 回复  |  直到 6 年前
        1
  •  0
  •   x00    6 年前

    PHP脚本开始发送数据(nginx读取),然后暂停(计算时间),然后发送更多数据(nginx读取)。如果暂停时间超过指定的时间,则连接将断开。

    我认为这是一个正确的解释。
    测试也很容易:用一些代码编写一个简单的php脚本 sleep 介于 echo s和 flush 锿。(目前我自己做不了)。

    “整个反应”的持续时间不是很重要吗?

    就我个人而言 fastcgi_read_timeout 这种方法更具吸引力:

    • 如果您的服务器处于固定超时的高负载下,它肯定会不时出现故障。用户会被激怒,他们会刷新。。。发送另一个请求。。。而且你的服务器阻塞得更厉害,永远无法满足用户的任何请求。
    • 但是,无论负载如何,如果服务器显示它仍然处于活动状态,并努力满足客户机的请求,则由他们决定等待还是中止。好多了!

    什么参数设定了这个限制?

    max_execution_time 在里面 php.ini 或

    fastcgi_param PHP_VALUE "max_execution_time=1000";
    

    在NGINX配置中