nginx: autoload dynamic modules
authorSean Khan <datapronix@protonmail.com>
Fri, 12 Apr 2024 22:05:30 +0000 (18:05 -0400)
committerChristian Marangi <ansuelsmth@gmail.com>
Thu, 18 Apr 2024 11:02:42 +0000 (13:02 +0200)
commitcaffa410ed70285a4e48333209d673759846f989
treea3d595de0ae8fe6b9ec8c9aa43e885ffbfd5fba2
parent4cc682c8a47172bd71f3065f0c078519529fa227
nginx: autoload dynamic modules

In current setup, dynamic modules are not autoloaded, requiring users
to create and load additional config files.

We should assume that if a user installs additional modules, they want
them 'on' by default.

This commit does the following:

1.) generates a module load config in '/etc/nginx/modules.d' with the
    format '${module_name}'.module
    (i.e. /etc/nginx/modules.d/ngx_http_geoip2.module)
2.) deletes previous module conf for 'luci'
    /etc/nginx/modules.d/luci.module if it exists, this will prevent
    'module already loaded' errors.

The following is a portion of the final output when using the
default uci template `/etc/nginx/uci.conf.template` (via nginx-util):

```
nginx -T -c '/etc/nginx/uci.conf'

load_module /usr/lib/nginx/modules/ngx_http_brotli_filter_module.so;

load_module /usr/lib/nginx/modules/ngx_http_brotli_static_module.so;

load_module /usr/lib/nginx/modules/ngx_http_dav_ext_module.so;

load_module /usr/lib/nginx/modules/ngx_http_geoip2_module.so;

load_module /usr/lib/nginx/modules/ngx_http_headers_more_filter_module.so;

load_module /usr/lib/nginx/modules/ngx_http_lua_module.so;

load_module /usr/lib/nginx/modules/ngx_http_naxsi_module.so;

load_module /usr/lib/nginx/modules/ngx_http_ts_module.so;

load_module /usr/lib/nginx/modules/ngx_http_ubus_module.so;

load_module /usr/lib/nginx/modules/ngx_rtmp_module.so;

load_module /usr/lib/nginx/modules/ngx_stream_module.so;

load_module /usr/lib/nginx/modules/ngx_stream_geoip2_module.so;
```

Signed-off-by: Sean Khan <datapronix@protonmail.com>
net/nginx/Makefile
net/nginx/files-luci-support/60_nginx-luci-support