diff --git a/package/Config.in b/package/Config.in
index da7b8555e3..7756a4c603 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1499,6 +1499,11 @@ menu "Networking applications"
 	source "package/nfacct/Config.in"
 	source "package/nftables/Config.in"
 	source "package/nginx/Config.in"
+if BR2_PACKAGE_NGINX
+menu "External nginx modules"
+	source "package/nginx-upload/Config.in"
+endmenu
+endif
 	source "package/ngircd/Config.in"
 	source "package/ngrep/Config.in"
 	source "package/nload/Config.in"
diff --git a/package/nginx-upload/Config.in b/package/nginx-upload/Config.in
new file mode 100644
index 0000000000..b4ee71caba
--- /dev/null
+++ b/package/nginx-upload/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_NGINX_UPLOAD
+	bool "nginx-upload"
+	select BR2_PACKAGE_OPENSSL
+	help
+	  A module for nginx web server for handling file uploads
+	  using multipart/form-data encoding (RFC 1867).
+
+	  https://github.com/vkholodkov/nginx-upload-module
diff --git a/package/nginx-upload/nginx-upload.hash b/package/nginx-upload/nginx-upload.hash
new file mode 100644
index 0000000000..4fc4347361
--- /dev/null
+++ b/package/nginx-upload/nginx-upload.hash
@@ -0,0 +1,2 @@
+#Locally Computed:
+sha256 8cd1d9d968ffba807de2e546ea9cad5e1ae294ec60b4927b2d60a98bdb4a1144  nginx-upload-aba1e3f34c754551f4f49e572bc86863d535609d.tar.gz
diff --git a/package/nginx-upload/nginx-upload.mk b/package/nginx-upload/nginx-upload.mk
new file mode 100644
index 0000000000..6f94d35894
--- /dev/null
+++ b/package/nginx-upload/nginx-upload.mk
@@ -0,0 +1,13 @@
+################################################################################
+#
+# nginx-upload
+#
+################################################################################
+
+NGINX_UPLOAD_VERSION = aba1e3f34c754551f4f49e572bc86863d535609d
+NGINX_UPLOAD_SITE = $(call github,vkholodkov,nginx-upload-module,$(NGINX_UPLOAD_VERSION))
+NGINX_UPLOAD_LICENSE = BSD-3c
+NGINX_UPLOAD_LICENSE_FILES = LICENCE
+NGINX_UPLOAD_DEPENDENCIES = openssl
+
+$(eval $(generic-package))
diff --git a/package/nginx/nginx.mk b/package/nginx/nginx.mk
index 5eb5488bd9..018d0f884f 100644
--- a/package/nginx/nginx.mk
+++ b/package/nginx/nginx.mk
@@ -234,6 +234,12 @@ NGINX_CONF_OPTS += \
 
 endif # BR2_PACKAGE_NGINX_STREAM
 
+# external modules
+ifeq ($(BR2_PACKAGE_NGINX_UPLOAD),y)
+NGINX_CONF_OPTS += $(addprefix --add-module=,$(NGINX_UPLOAD_DIR))
+NGINX_DEPENDENCIES += nginx-upload
+endif
+
 # Debug logging
 NGINX_CONF_OPTS += $(if $(BR2_PACKAGE_NGINX_DEBUG),--with-debug)