Add capability to parse forward headers

In case standalone watcher-api runs behind forwarders (like load
balancers), it should parse specific request headers to determine
the endpoint url clients actually use.

Add http_proxy_to_wsgi middleware to api pipeline to handle this.

Closes-Bug: #2122353
Change-Id: I27ade17f7ce1649295f92f3ea1af620df63ba1bc
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
This commit is contained in:
Takashi Kajinami
2025-09-09 02:18:07 +09:00
parent a562880b1c
commit 17a4c96c66
3 changed files with 12 additions and 0 deletions

View File

@@ -9,6 +9,7 @@ namespace = oslo.concurrency
namespace = oslo.db
namespace = oslo.log
namespace = oslo.messaging
namespace = oslo.middleware.http_proxy_to_wsgi
namespace = oslo.policy
namespace = oslo.reports
namespace = oslo.service.periodic_task

View File

@@ -0,0 +1,8 @@
---
fixes:
- |
The ``http_proxy_to_wsgi`` middleware has been added to the api pipeline.
Now setting the ``[oslo_middleware] enable_proxy_headers_parsing`` option
to true enables parsing the HTTP headers set by forwarders, to detect
endpoint urls clients actually use.

View File

@@ -17,6 +17,7 @@
# under the License.
from oslo_middleware import http_proxy_to_wsgi
from oslo_middleware import request_id
import pecan
@@ -56,6 +57,8 @@ def _wrap_app(app):
app = request_id.RequestId(app)
app = http_proxy_to_wsgi.HTTPProxyToWSGI(app)
return app