我的应用程序正在侦听传入数据的unix域套接字(UDS),而nginx正在使用PHP发送数据.发送几个KB的较小数据块可以很好地工作,但是一旦达到某个限制,浏览器就会收到错误504 Gateway Time-out,nginx日志
上游超时(110:连接超时)从上游读取响应头,客户端:127.0.0.1,服务器:_,请求:"GET /foo/bar.php HTTP/1.1",上游:"fastcgi:// unix :/run/php/php7.0-fpm.sock",主持人:"localhost"
套接字仍然获取一些数据(总是减少大约1.5 MB)并回复但网络服务器似乎没有得到响应.是否有必须调整的UDS流限制或nginx变量?
PHP代码:
public function send ($msg)
{
$str = "{$msg}".chr(27);
$ret = socket_write($this->socket, $str, strlen($str));
if ($ret == FALSE)
{
return false;
}
else
{
$response = "";
while (($chunk = socket_read($this->socket, 2048, PHP_BINARY_READ)) !== FALSE)
{
$response .= $chunk;
if (substr($chunk, -1) == chr(27))
break;
}
//close the connection
if ($this->connected !== false)
{
socket_shutdown($this->socket);
socket_close($this->socket);
$this->connected = false;
}
return $response;
}
}
Run Code Online (Sandbox Code Playgroud) 我想用一个标记为xyz的XML文件中的所有名称替换.换句话说,替换标记之间的所有内容(包括空格).我究竟做错了什么?
Search: (<name>)(.*)(</name>)
Replace: \1xyz\3
Run Code Online (Sandbox Code Playgroud)