Allow including custom nginx conf files (#178)

* 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

* Don't fail if file doesn't exist

* Advanced Nginx settings doc
This commit is contained in:
Carl Mercier 2019-08-08 21:19:42 -04:00 committed by jc21
parent ddbfdf6f6e
commit 31aa9c9644
5 changed files with 34 additions and 0 deletions

17
doc/ADVANCED_NGINX.md Normal file
View File

@ -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.

View File

@ -76,6 +76,9 @@ http {
include /data/nginx/redirection_host/*.conf; include /data/nginx/redirection_host/*.conf;
include /data/nginx/dead_host/*.conf; include /data/nginx/dead_host/*.conf;
include /data/nginx/temp/*.conf; include /data/nginx/temp/*.conf;
# Custom
include /data/nginx/custom/http[.]conf;
} }
stream { stream {
@ -83,3 +86,5 @@ stream {
include /data/nginx/stream/*.conf; include /data/nginx/stream/*.conf;
} }
# Custom
include /data/nginx/custom/root[.]conf;

View File

@ -41,5 +41,7 @@ server {
} }
{% endif %} {% endif %}
# Custom
include /data/nginx/custom/server_proxy[.]conf;
} }
{% endif %} {% endif %}

View File

@ -25,5 +25,7 @@ server {
} }
{% endif %} {% endif %}
# Custom
include /data/nginx/custom/server_redirect[.]conf;
} }
{% endif %} {% endif %}

View File

@ -7,12 +7,20 @@
server { server {
listen {{ incoming_port }}; listen {{ incoming_port }};
proxy_pass {{ forward_ip }}:{{ forwarding_port }}; proxy_pass {{ forward_ip }}:{{ forwarding_port }};
# Custom
include /data/nginx/custom/server_stream[.]conf;
include /data/nginx/custom/server_stream_tcp[.]conf;
} }
{% endif %} {% endif %}
{% if udp_forwarding == 1 or udp_forwarding == true %} {% if udp_forwarding == 1 or udp_forwarding == true %}
server { server {
listen {{ incoming_port }} udp; listen {{ incoming_port }} udp;
proxy_pass {{ forward_ip }}:{{ forwarding_port }}; proxy_pass {{ forward_ip }}:{{ forwarding_port }};
# Custom
include /data/nginx/custom/server_stream[.]conf;
include /data/nginx/custom/server_stream_udp[.]conf;
} }
{% endif %} {% endif %}
{% endif %} {% endif %}