diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Base/ApiControllerBase.php b/src/opnsense/mvc/app/controllers/OPNsense/Base/ApiControllerBase.php index ebcd524d303..3e3ddd5d3f9 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Base/ApiControllerBase.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Base/ApiControllerBase.php @@ -227,6 +227,8 @@ protected function configdStream( ) { $response = (new Backend())->configdpStream($action, $params, $poll_timeout); + /* disable nginx reverse proxy buffering so streamed configd output is delivered in real time */ + $headers[] = 'X-Accel-Buffering: no'; foreach ($headers as $header) { $parts = explode(':', $header, 2); $this->response->setHeader($parts[0], ltrim($parts[1])); diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/LogController.php b/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/LogController.php index 8ab85e5834f..7e2ff0f0b9e 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/LogController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/LogController.php @@ -99,8 +99,7 @@ public function __call($name, $arguments) [$offset, $searchPhrase, $module, $scope, $severities], [ 'Content-Type: text/event-stream', - 'Cache-Control: no-cache', - 'X-Accel-Buffering: no' /* disable nginx reverse proxy buffering for SSE streams to ensure real-time delivery */ + 'Cache-Control: no-cache' ], 60 /* XXX */ ); diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/TrafficController.php b/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/TrafficController.php index f0ebc1a3210..33a24dfbc82 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/TrafficController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/TrafficController.php @@ -55,7 +55,7 @@ public function streamAction($poll_interval = 1) [$poll_interval], [ 'Content-Type: text/event-stream', - 'Cache-Control: no-cache', + 'Cache-Control: no-cache' ], $poll_interval + 1 );