将default_socket_timeout设置为无穷大?

时间:2015-12-01 15:53:49

标签: php nginx

我知道在setValue中有一个名为/etc/php5/fpm/php.ini的设置,它实际上终止了在特定时间内没有响应的连接。 我正在运行一个基于RabbitMQ的AJAX"监听器",它打开一个连接并等待它收到响应,如果有的话,然后重新启动。

问题是它可能很长时间没有收到回复 - 有时甚至长达2小时。当发生这种情况时,听众会因为收到default_socket_timeout而死亡。我知道平均负载 - 它是一个内部系统,只能访问某个办公室 - 所以太多的套接字不会成为问题。 有没有办法将504 Gateway Timeout设置为"没有限制"?我尝试了default_socket_timeout,但只是将其恢复为默认值60秒。

2 个答案:

答案 0 :(得分:5)

为了完整起见:

default_socket_timeout=-1 

禁用超时....

答案 1 :(得分:2)

事实证明,我的Gateway Timeout问题根本与default_socket_timeout无关。我最终将fastcgi_read_timeout 3000;放在我的nginx PHP位置块中,它解决了这个问题。这是我的配置结束的方式:

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_read_timeout 3000;
}

这让我有一个长时间运行的请求,在60秒后不会被切断。