diff --git a/www/nginx/pkg-descr b/www/nginx/pkg-descr
index 13d933a0d..1e77f9370 100644
--- a/www/nginx/pkg-descr
+++ b/www/nginx/pkg-descr
@@ -11,6 +11,8 @@ Plugin Changelog
1.15
* add OCSP stapling and verify
+* fix bug sendfile directive is only applied if TLS is enabled
+* allow to configure the maximum header and request line buffer size HTTP Server advanced option (Issue: 1544)
1.14
diff --git a/www/nginx/src/opnsense/mvc/app/controllers/OPNsense/Nginx/forms/httpserver.xml b/www/nginx/src/opnsense/mvc/app/controllers/OPNsense/Nginx/forms/httpserver.xml
index 2e62fb6b1..87e9c8916 100644
--- a/www/nginx/src/opnsense/mvc/app/controllers/OPNsense/Nginx/forms/httpserver.xml
+++ b/www/nginx/src/opnsense/mvc/app/controllers/OPNsense/Nginx/forms/httpserver.xml
@@ -204,6 +204,27 @@
trueAllow the daemon to use the sendfile function.
+
+ httpserver.client_header_buffer_size
+
+ text
+ true
+ Contains the size of a header Buffer. If a header or the request line does not fit into it, a large header buffer will be used.
+
+
+ httpserver.large_client_header_buffers_number
+
+ text
+ true
+ This field contains the amount of large header buffers. If there are not enough, the server will respond with an HTTP error.
+
+
+ httpserver.large_client_header_buffers_size
+
+ text
+ true
+ This field contains the size of large header buffers. If a header or the request line does not fit into it, the server will respond with an HTTP error.
+ httpserver.security_header
diff --git a/www/nginx/src/opnsense/mvc/app/models/OPNsense/Nginx/Nginx.xml b/www/nginx/src/opnsense/mvc/app/models/OPNsense/Nginx/Nginx.xml
index c6786472c..aafd17bf6 100644
--- a/www/nginx/src/opnsense/mvc/app/models/OPNsense/Nginx/Nginx.xml
+++ b/www/nginx/src/opnsense/mvc/app/models/OPNsense/Nginx/Nginx.xml
@@ -715,6 +715,21 @@
1Y
+
+ Y
+ 1
+ 1
+
+
+ Y
+ 4
+ 1
+
+
+ Y
+ 8
+ 1
+
diff --git a/www/nginx/src/opnsense/service/templates/OPNsense/Nginx/http.conf b/www/nginx/src/opnsense/service/templates/OPNsense/Nginx/http.conf
index a929dab25..bcd597f13 100644
--- a/www/nginx/src/opnsense/service/templates/OPNsense/Nginx/http.conf
+++ b/www/nginx/src/opnsense/service/templates/OPNsense/Nginx/http.conf
@@ -121,8 +121,9 @@ server {
{% else %}
ssl_stapling off;
{% endif %}
- sendfile {% if server.sendfile is defined and server.sendfile == '1' %}On{% else %}Off{% endif %};
{% endif %}
+
+ sendfile {% if server.sendfile is defined and server.sendfile == '1' %}On{% else %}Off{% endif %};
server_name {{ server.servername.replace(',', ' ') }};
{% if server.real_ip_source is defined and server.real_ip_source != '' %}
real_ip_header {{ server.real_ip_source }};
@@ -131,6 +132,10 @@ server {
set_real_ip_from {{ trusted_proxy }};
{% endfor %}
{% endif %}
+{% endif %}
+
+ client_header_buffer_size {{ server.client_header_buffer_size }}k;
+ large_client_header_buffers {{ server.large_client_header_buffers_number }} {{ server.large_client_header_buffers_size }}k;
{% if server.trusted_proxies_alias is defined and server.trusted_proxies_alias != '' %}
{% for trusted_proxy_uuid in server.trusted_proxies_alias.split(',') %}
{% set trusted_proxy_alias = helpers.getUUID(trusted_proxy_uuid) %}
@@ -141,7 +146,6 @@ server {
{% endif %}
{% endfor %}
{% endif %}
-{% endif %}
{% if server.charset is defined %}
charset {{ server.charset }};
{% endif %}