From 56de6621b51304c39571d57fe38ab5438c0d1e53 Mon Sep 17 00:00:00 2001 From: Carl Mercier Date: Fri, 26 Jul 2019 07:51:18 -0400 Subject: [PATCH 1/3] Allow including custom nginx conf files Give advanced users more flexibility by allowing them to include custom config files at differents locations in the nginx configuration. `/data/nginx/custom/root.conf`: Included at the very end of nginx.conf `/data/nginx/custom/http.conf`: Included at the end of the main `http` block `/data/nginx/custom/server_proxy.conf`: Included at the end of every proxy `server` block `/data/nginx/custom/server_redirect.conf`: Included at the end of every redirection `server` block `/data/nginx/custom/server_stream.conf`: Included at the end of every stream `server` block `/data/nginx/custom/server_stream_tcp.conf`: Included at the end of every TCP stream `server` block `/data/nginx/custom/server_stream_udp.conf`: Included at the end of every UDP stream `server` block --- rootfs/etc/nginx/nginx.conf | 5 +++++ src/backend/templates/proxy_host.conf | 2 ++ src/backend/templates/redirection_host.conf | 2 ++ src/backend/templates/stream.conf | 8 ++++++++ 4 files changed, 17 insertions(+) diff --git a/rootfs/etc/nginx/nginx.conf b/rootfs/etc/nginx/nginx.conf index 19332564d..e5cd23d05 100644 --- a/rootfs/etc/nginx/nginx.conf +++ b/rootfs/etc/nginx/nginx.conf @@ -76,6 +76,9 @@ http { include /data/nginx/redirection_host/*.conf; include /data/nginx/dead_host/*.conf; include /data/nginx/temp/*.conf; + + # Custom + include /data/nginx/custom/http.conf; } stream { @@ -83,3 +86,5 @@ stream { include /data/nginx/stream/*.conf; } +# Custom +include /data/nginx/custom/root.conf; diff --git a/src/backend/templates/proxy_host.conf b/src/backend/templates/proxy_host.conf index fc58a43b1..f0a681dd3 100644 --- a/src/backend/templates/proxy_host.conf +++ b/src/backend/templates/proxy_host.conf @@ -41,5 +41,7 @@ server { } {% endif %} + # Custom + include /data/nginx/custom/server_proxy.conf; } {% endif %} diff --git a/src/backend/templates/redirection_host.conf b/src/backend/templates/redirection_host.conf index 3e6c2b441..10d9fe7cc 100644 --- a/src/backend/templates/redirection_host.conf +++ b/src/backend/templates/redirection_host.conf @@ -25,5 +25,7 @@ server { } {% endif %} + # Custom + include /data/nginx/custom/server_redirect.conf; } {% endif %} diff --git a/src/backend/templates/stream.conf b/src/backend/templates/stream.conf index 53356cfd0..7b28c7444 100644 --- a/src/backend/templates/stream.conf +++ b/src/backend/templates/stream.conf @@ -7,12 +7,20 @@ server { listen {{ incoming_port }}; proxy_pass {{ forward_ip }}:{{ forwarding_port }}; + + # Custom + include /data/nginx/custom/server_stream.conf; + include /data/nginx/custom/server_stream_tcp.conf; } {% endif %} {% if udp_forwarding == 1 or udp_forwarding == true %} server { listen {{ incoming_port }} udp; proxy_pass {{ forward_ip }}:{{ forwarding_port }}; + + # Custom + include /data/nginx/custom/server_stream.conf; + include /data/nginx/custom/server_stream_udp.conf; } {% endif %} {% endif %} \ No newline at end of file From d10b66028bbd143ab7c757ce12e22a629e5dc1b4 Mon Sep 17 00:00:00 2001 From: Carl Mercier Date: Thu, 8 Aug 2019 20:18:50 -0400 Subject: [PATCH 2/3] Don't fail if file doesn't exist --- rootfs/etc/nginx/nginx.conf | 4 ++-- src/backend/templates/proxy_host.conf | 2 +- src/backend/templates/redirection_host.conf | 2 +- src/backend/templates/stream.conf | 8 ++++---- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/rootfs/etc/nginx/nginx.conf b/rootfs/etc/nginx/nginx.conf index e5cd23d05..ea45b53f4 100644 --- a/rootfs/etc/nginx/nginx.conf +++ b/rootfs/etc/nginx/nginx.conf @@ -78,7 +78,7 @@ http { include /data/nginx/temp/*.conf; # Custom - include /data/nginx/custom/http.conf; + include /data/nginx/custom/http[.]conf; } stream { @@ -87,4 +87,4 @@ stream { } # Custom -include /data/nginx/custom/root.conf; +include /data/nginx/custom/root[.]conf; diff --git a/src/backend/templates/proxy_host.conf b/src/backend/templates/proxy_host.conf index f0a681dd3..8d8c97da8 100644 --- a/src/backend/templates/proxy_host.conf +++ b/src/backend/templates/proxy_host.conf @@ -42,6 +42,6 @@ server { {% endif %} # Custom - include /data/nginx/custom/server_proxy.conf; + include /data/nginx/custom/server_proxy[.]conf; } {% endif %} diff --git a/src/backend/templates/redirection_host.conf b/src/backend/templates/redirection_host.conf index 10d9fe7cc..463f3a8eb 100644 --- a/src/backend/templates/redirection_host.conf +++ b/src/backend/templates/redirection_host.conf @@ -26,6 +26,6 @@ server { {% endif %} # Custom - include /data/nginx/custom/server_redirect.conf; + include /data/nginx/custom/server_redirect[.]conf; } {% endif %} diff --git a/src/backend/templates/stream.conf b/src/backend/templates/stream.conf index 7b28c7444..a6dc054f8 100644 --- a/src/backend/templates/stream.conf +++ b/src/backend/templates/stream.conf @@ -9,8 +9,8 @@ server { proxy_pass {{ forward_ip }}:{{ forwarding_port }}; # Custom - include /data/nginx/custom/server_stream.conf; - include /data/nginx/custom/server_stream_tcp.conf; + include /data/nginx/custom/server_stream[.]conf; + include /data/nginx/custom/server_stream_tcp[.]conf; } {% endif %} {% if udp_forwarding == 1 or udp_forwarding == true %} @@ -19,8 +19,8 @@ server { proxy_pass {{ forward_ip }}:{{ forwarding_port }}; # Custom - include /data/nginx/custom/server_stream.conf; - include /data/nginx/custom/server_stream_udp.conf; + include /data/nginx/custom/server_stream[.]conf; + include /data/nginx/custom/server_stream_udp[.]conf; } {% endif %} {% endif %} \ No newline at end of file From e144199c4e23f0218e79807146d9c0fed3f058e8 Mon Sep 17 00:00:00 2001 From: Carl Mercier Date: Thu, 8 Aug 2019 20:54:25 -0400 Subject: [PATCH 3/3] Advanced Nginx settings doc --- doc/ADVANCED_NGINX.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 doc/ADVANCED_NGINX.md diff --git a/doc/ADVANCED_NGINX.md b/doc/ADVANCED_NGINX.md new file mode 100644 index 000000000..eabac84c4 --- /dev/null +++ b/doc/ADVANCED_NGINX.md @@ -0,0 +1,17 @@ +## Advanced Nginx Configuration + +If you are a more advanced user, you might be itching for extra Nginx customizability. + +NPM has the ability to include different custom configuration snippets in different places. + +You can add your custom configuration snippet files at `/data/nginx/custom` as follow: + +`/data/nginx/custom/root.conf`: Included at the very end of nginx.conf +`/data/nginx/custom/http.conf`: Included at the end of the main http block +`/data/nginx/custom/server_proxy.conf`: Included at the end of every proxy server block +`/data/nginx/custom/server_redirect.conf`: Included at the end of every redirection server block +`/data/nginx/custom/server_stream.conf`: Included at the end of every stream server block +`/data/nginx/custom/server_stream_tcp.conf`: Included at the end of every TCP stream server block +`/data/nginx/custom/server_stream_udp.conf`: Included at the end of every UDP stream server block + +Every file is optional. \ No newline at end of file