Skip to content

Commit

Permalink
Merge staging-next into staging
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions[bot] authored Apr 6, 2023
2 parents eed7f5c + 6e7ab02 commit 75c8969
Show file tree
Hide file tree
Showing 37 changed files with 718 additions and 625 deletions.
2 changes: 2 additions & 0 deletions nixos/doc/manual/release-notes/rl-2305.section.md
Original file line number Diff line number Diff line change
Expand Up @@ -323,6 +323,8 @@ In addition to numerous new and upgraded packages, this release has the followin

- Enabling global redirect in `services.nginx.virtualHosts` now allows one to add exceptions with the `locations` option.

- A new option `proxyCachePath` has been added to `services.nginx`. Learn more about proxy_cache_path: <https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_path>.

- A new option `recommendedBrotliSettings` has been added to `services.nginx`. Learn more about compression in Brotli format [here](https://github.com/google/ngx_brotli/blob/master/README.md).

- Updated recommended settings in `services.nginx.recommendedGzipSettings`:
Expand Down
40 changes: 27 additions & 13 deletions nixos/modules/services/web-servers/nginx/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,17 @@ let
proxy_set_header X-Forwarded-Server $host;
'';

proxyCachePathConfig = concatStringsSep "\n" (mapAttrsToList (name: proxyCachePath: ''
proxy_cache_path ${concatStringsSep " " [
"/var/cache/nginx/${name}"
"keys_zone=${proxyCachePath.keysZoneName}:${proxyCachePath.keysZoneSize}"
"levels=${proxyCachePath.levels}"
"use_temp_path=${if proxyCachePath.useTempPath then "on" else "off"}"
"inactive=${proxyCachePath.inactive}"
"max_size=${proxyCachePath.maxSize}"
]};
'') (filterAttrs (name: conf: conf.enable) cfg.proxyCachePath));

upstreamConfig = toString (flip mapAttrsToList cfg.upstreams (name: upstream: ''
upstream ${name} {
${toString (flip mapAttrsToList upstream.servers (name: server: ''
Expand Down Expand Up @@ -241,16 +252,10 @@ let
server_tokens ${if cfg.serverTokens then "on" else "off"};
${optionalString cfg.proxyCache.enable ''
proxy_cache_path /var/cache/nginx keys_zone=${cfg.proxyCache.keysZoneName}:${cfg.proxyCache.keysZoneSize}
levels=${cfg.proxyCache.levels}
use_temp_path=${if cfg.proxyCache.useTempPath then "on" else "off"}
inactive=${cfg.proxyCache.inactive}
max_size=${cfg.proxyCache.maxSize};
''}
${cfg.commonHttpConfig}
${proxyCachePathConfig}
${vhosts}
${optionalString cfg.statusPage ''
Expand Down Expand Up @@ -808,10 +813,10 @@ in
'';
};

proxyCache = mkOption {
type = types.submodule {
proxyCachePath = mkOption {
type = types.attrsOf (types.submodule ({ ... }: {
options = {
enable = mkEnableOption (lib.mdDoc "Enable proxy cache");
enable = mkEnableOption (lib.mdDoc "this proxy cache path entry");

keysZoneName = mkOption {
type = types.str;
Expand Down Expand Up @@ -869,9 +874,12 @@ in
description = lib.mdDoc "Set maximum cache size";
};
};
};
}));
default = {};
description = lib.mdDoc "Configure proxy cache";
description = lib.mdDoc ''
Configure a proxy cache path entry.
See <http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_path> for documentation.
'';
};

resolver = mkOption {
Expand Down Expand Up @@ -982,6 +990,12 @@ in
The Nginx log directory has been moved to /var/log/nginx, the cache directory
to /var/cache/nginx. The option services.nginx.stateDir has been removed.
'')
(mkRenamedOptionModule [ "services" "nginx" "proxyCache" "inactive" ] [ "services" "nginx" "proxyCachePath" "" "inactive" ])
(mkRenamedOptionModule [ "services" "nginx" "proxyCache" "useTempPath" ] [ "services" "nginx" "proxyCachePath" "" "useTempPath" ])
(mkRenamedOptionModule [ "services" "nginx" "proxyCache" "levels" ] [ "services" "nginx" "proxyCachePath" "" "levels" ])
(mkRenamedOptionModule [ "services" "nginx" "proxyCache" "keysZoneSize" ] [ "services" "nginx" "proxyCachePath" "" "keysZoneSize" ])
(mkRenamedOptionModule [ "services" "nginx" "proxyCache" "keysZoneName" ] [ "services" "nginx" "proxyCachePath" "" "keysZoneName" ])
(mkRenamedOptionModule [ "services" "nginx" "proxyCache" "enable" ] [ "services" "nginx" "proxyCachePath" "" "enable" ])
];

config = mkIf cfg.enable {
Expand Down
Loading

0 comments on commit 75c8969

Please sign in to comment.