nixos/nginx: add prependConfig options

This is needed for example to load dynamic nginx modules.
Which need to be loaded before any `http` or `stream` blocks.
See: https://docs.nginx.com/nginx/admin-guide/dynamic-modules/dynamic-modules/#installing-and-loading-the-module
This commit is contained in:
vdbe 2025-06-13 11:50:58 +02:00
parent 8fba93d37d
commit b8d052a70d
No known key found for this signature in database
GPG Key ID: F4756403592D3E9F

View File

@ -163,6 +163,8 @@ let
configFile =
(if cfg.validateConfigFile then pkgs.writers.writeNginxConfig else pkgs.writeText) "nginx.conf"
''
${cfg.prependConfig}
pid /run/nginx/nginx.pid;
error_log ${cfg.logError};
daemon off;
@ -835,6 +837,18 @@ in
'';
};
prependConfig = mkOption {
type = types.lines;
default = "";
description = ''
Configuration lines prepended to the generated Nginx
configuration file. Can for example be used to load modules.
{option}`prependConfig` can be specified more than once
and its value will be concatenated (contrary to {option}`config`
which can be set only once).
'';
};
appendConfig = mkOption {
type = types.lines;
default = "";