我知道在setValue
中有一个名为/etc/php5/fpm/php.ini
的设置,它实际上终止了在特定时间内没有响应的连接。
我正在运行一个基于RabbitMQ的AJAX"监听器",它打开一个连接并等待它收到响应,如果有的话,然后重新启动。
问题是它可能很长时间没有收到回复 - 有时甚至长达2小时。当发生这种情况时,听众会因为收到default_socket_timeout
而死亡。我知道平均负载 - 它是一个内部系统,只能访问某个办公室 - 所以太多的套接字不会成为问题。
有没有办法将504 Gateway Timeout
设置为"没有限制"?我尝试了default_socket_timeout
,但只是将其恢复为默认值60秒。
答案 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秒后不会被切断。