From 1fce2529f68833fb4a5864d616134a51ef1d15f1 Mon Sep 17 00:00:00 2001 From: Billy Olsen Date: Tue, 30 Mar 2021 10:31:17 -0700 Subject: [PATCH] Increase nginx client_max_body_size for image uploads By default, nginx has a small (1MB) limit on the size of uploads, which prevents using horizon interface to upload an image. Increase the default client_max_body_size to allow for most images to be uploaded without having to tweak the client_max_body_size. Additionally, make the client_max_body_size tunable via snap settings to make it easier for users to change. This adds a new snap config option 'config.horizon.upload.max' which allows users to tweak this value. Closes-Bug: #1868503 Change-Id: I0a89e0845d6c7d2805556f87685d280b4e72122a --- snap-overlay/bin/set-default-config.py | 3 +++ snap-overlay/snap-openstack.yaml | 1 + snap-overlay/templates/nginx.conf.j2 | 1 + 3 files changed, 5 insertions(+) diff --git a/snap-overlay/bin/set-default-config.py b/snap-overlay/bin/set-default-config.py index e3c195a..716033c 100755 --- a/snap-overlay/bin/set-default-config.py +++ b/snap-overlay/bin/set-default-config.py @@ -75,6 +75,9 @@ def _get_default_config(): 'config.nova.cpu-mode': 'host-model', # Do not override cpu-models by default. 'config.nova.cpu-models': '', + # Allow up to an 8G image upload by default. This is quite large + # but should allow for some larger images by default (e.g. Windows) + 'config.horizon.upload.max': '8G', } diff --git a/snap-overlay/snap-openstack.yaml b/snap-overlay/snap-openstack.yaml index 1d3a4f5..e2447bf 100644 --- a/snap-overlay/snap-openstack.yaml +++ b/snap-overlay/snap-openstack.yaml @@ -108,6 +108,7 @@ setup: dns_domain: 'config.network.dns-domain' dashboard_allowed_hosts: 'config.network.dashboard-allowed-hosts' dashboard_port: 'config.network.ports.dashboard' + max_upload_size: 'config.horizon.upload.max' mysql_port: 'config.network.ports.mysql' rabbit_port: 'config.network.ports.rabbit' logging_debug: 'config.logging.debug' diff --git a/snap-overlay/templates/nginx.conf.j2 b/snap-overlay/templates/nginx.conf.j2 index 83155a8..f17f76f 100644 --- a/snap-overlay/templates/nginx.conf.j2 +++ b/snap-overlay/templates/nginx.conf.j2 @@ -15,6 +15,7 @@ http { tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; + client_max_body_size {{ max_upload_size }}; types_hash_max_size 2048; include {{ snap }}/usr/conf/mime.types;