4168b46cff
Like other WSGI services in Kolla Ansible, the Horizon WSGI application handles log output via the `wsgi.errors` object. See [1] for further information. The problem is that this log output is written to a file called `horizon.log`, causing it to processed as an 'Oslo log' in the Fluentd processing pipeline. Since the log format doesn't match the expected format, this results in parsing errors. This fix renames the log file and adjusts the format to match other WSGI applications. The logs are then processed in the same way as other WSGI application logs, resolving the issue. [1] https://modwsgi.readthedocs.io/en/master/user-guides/debugging-techniques.html Change-Id: I93777d1c53920f5470c78356e6b3a4064fbe04b4 Closes-Bug: #1898174
94 lines
3.6 KiB
Django/Jinja
94 lines
3.6 KiB
Django/Jinja
{% set python_path = '/var/lib/kolla/venv/lib/python' + distro_python_version + '/site-packages' %}
|
|
|
|
{% if horizon_enable_tls_backend | bool %}
|
|
{% if kolla_base_distro in ['centos', 'rocky'] %}
|
|
LoadModule ssl_module /usr/lib64/httpd/modules/mod_ssl.so
|
|
{% else %}
|
|
LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
|
|
{% endif %}
|
|
{% endif %}
|
|
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ horizon_listen_port }}
|
|
|
|
ServerSignature Off
|
|
ServerTokens Prod
|
|
TraceEnable off
|
|
|
|
<VirtualHost {{ api_interface_address }}:{{ horizon_listen_port }}>
|
|
LogLevel warn
|
|
ErrorLogFormat "%{cu}t %M"
|
|
ErrorLog /var/log/kolla/horizon/horizon-error.log
|
|
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b %D \"%{Referer}i\" \"%{User-Agent}i\"" logformat
|
|
CustomLog /var/log/kolla/horizon/horizon-access.log logformat
|
|
|
|
WSGIScriptReloading On
|
|
WSGIDaemonProcess horizon-http processes={{ horizon_wsgi_processes }} threads={{ horizon_wsgi_threads }} user=horizon group=horizon display-name=horizon
|
|
WSGIProcessGroup horizon-http
|
|
WSGIScriptAlias / {{ python_path }}/openstack_dashboard/wsgi.py
|
|
WSGIPassAuthorization On
|
|
WSGIApplicationGroup %{GLOBAL}
|
|
|
|
<Location "/">
|
|
Require all granted
|
|
</Location>
|
|
|
|
<Location "/server-status">
|
|
Require local
|
|
</Location>
|
|
|
|
Alias /static {{ python_path }}/static
|
|
<Location "/static">
|
|
SetHandler None
|
|
</Location>
|
|
|
|
{% if horizon_enable_tls_backend | bool %}
|
|
SSLEngine On
|
|
SSLCertificateFile /etc/horizon/certs/horizon-cert.pem
|
|
SSLCertificateKeyFile /etc/horizon/certs/horizon-key.pem
|
|
{% endif %}
|
|
{% if horizon_httpd_limitrequestbody is defined %}
|
|
LimitRequestBody {{ horizon_httpd_limitrequestbody }}
|
|
{% endif %}
|
|
</VirtualHost>
|
|
|
|
<IfModule mod_deflate.c>
|
|
# Compress HTML, CSS, JavaScript, Json, Text, XML and fonts
|
|
AddOutputFilterByType DEFLATE application/javascript
|
|
AddOutputFilterByType DEFLATE application/json
|
|
AddOutputFilterByType DEFLATE application/rss+xml
|
|
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
|
|
AddOutputFilterByType DEFLATE application/x-font
|
|
AddOutputFilterByType DEFLATE application/x-font-opentype
|
|
AddOutputFilterByType DEFLATE application/x-font-otf
|
|
AddOutputFilterByType DEFLATE application/x-font-truetype
|
|
AddOutputFilterByType DEFLATE application/x-font-ttf
|
|
AddOutputFilterByType DEFLATE application/x-javascript
|
|
AddOutputFilterByType DEFLATE application/xhtml+xml
|
|
AddOutputFilterByType DEFLATE application/xml
|
|
AddOutputFilterByType DEFLATE font/opentype
|
|
AddOutputFilterByType DEFLATE font/otf
|
|
AddOutputFilterByType DEFLATE font/ttf
|
|
AddOutputFilterByType DEFLATE image/svg+xml
|
|
AddOutputFilterByType DEFLATE image/x-icon
|
|
AddOutputFilterByType DEFLATE text/css
|
|
AddOutputFilterByType DEFLATE text/html
|
|
AddOutputFilterByType DEFLATE text/javascript
|
|
AddOutputFilterByType DEFLATE text/plain
|
|
AddOutputFilterByType DEFLATE text/xml
|
|
</IfModule>
|
|
|
|
<IfModule mod_expires.c>
|
|
<Filesmatch "\.(jpg|jpeg|png|gif|js|css|swf|ico|woff)$">
|
|
ExpiresActive on
|
|
ExpiresDefault "access plus 1 month"
|
|
ExpiresByType application/javascript "access plus 1 year"
|
|
ExpiresByType text/css "access plus 1 year"
|
|
ExpiresByType image/x-ico "access plus 1 year"
|
|
ExpiresByType image/jpg "access plus 1 year"
|
|
ExpiresByType image/jpeg "access plus 1 year"
|
|
ExpiresByType image/gif "access plus 1 year"
|
|
ExpiresByType image/png "access plus 1 year"
|
|
Header merge Cache-Control public
|
|
Header unset ETag
|
|
</Filesmatch>
|
|
</IfModule>
|