From b8d052a70d591a4700304dcebc1a4a6b6834e881 Mon Sep 17 00:00:00 2001 From: vdbe Date: Fri, 13 Jun 2025 11:50:58 +0200 Subject: [PATCH] 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 --- .../modules/services/web-servers/nginx/default.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix index cd4f404a58ee..5775fbc00c10 100644 --- a/nixos/modules/services/web-servers/nginx/default.nix +++ b/nixos/modules/services/web-servers/nginx/default.nix @@ -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 = "";