Loading nixos/modules/services/web-servers/nginx/default.nix +15 −5 Original line number Diff line number Diff line Loading @@ -129,12 +129,9 @@ let '')); commonHttpConfig = '' # Load mime types. # Load mime types and configure maximum size of the types hash tables. include ${cfg.defaultMimeTypes}; # When recommendedOptimisation is disabled nginx fails to start because the mailmap mime.types database # contains 1026 entries and the default is only 1024. Setting to a higher number to remove the need to # overwrite it because nginx does not allow duplicated settings. types_hash_max_size 4096; types_hash_max_size ${toString cfg.typesHashMaxSize}; include ${cfg.package}/conf/fastcgi.conf; include ${cfg.package}/conf/uwsgi_params; Loading Loading @@ -896,6 +893,19 @@ in ''; }; typesHashMaxSize = mkOption { type = types.ints.positive; default = if cfg.defaultMimeTypes == "${pkgs.mailcap}/etc/nginx/mime.types" then 2688 else 1024; defaultText = literalExpression ''if cfg.defaultMimeTypes == "''${pkgs.mailcap}/etc/nginx/mime.types" then 2688 else 1024''; description = '' Sets the maximum size of the types hash tables (`types_hash_max_size`). It is recommended that the minimum size possible size is used. If {option}`recommendedOptimisation` is disabled, nginx would otherwise fail to start since the mailmap `mime.types` database has more entries than the nginx default value 1024. ''; }; proxyCachePath = mkOption { type = types.attrsOf (types.submodule ({ ... }: { options = { Loading nixos/tests/all-tests.nix +1 −0 Original line number Diff line number Diff line Loading @@ -670,6 +670,7 @@ in { nginx-etag-compression = handleTest ./nginx-etag-compression.nix {}; nginx-globalredirect = handleTest ./nginx-globalredirect.nix {}; nginx-http3 = handleTest ./nginx-http3.nix {}; nginx-mime = handleTest ./nginx-mime.nix {}; nginx-modsecurity = handleTest ./nginx-modsecurity.nix {}; nginx-moreheaders = handleTest ./nginx-moreheaders.nix {}; nginx-njs = handleTest ./nginx-njs.nix {}; Loading nixos/tests/nginx-mime.nix 0 → 100644 +26 −0 Original line number Diff line number Diff line import ./make-test-python.nix ( { lib, pkgs, ... }: { name = "nginx-mime"; meta.maintainers = with pkgs.lib.maintainers; [ izorkin ]; nodes = { server = { pkgs, ... }: { services.nginx = { enable = true; virtualHosts."localhost" = { }; }; }; }; testScript = '' server.start() server.wait_for_unit("nginx") # Check optimal size of types_hash server.fail("journalctl --unit nginx --grep 'could not build optimal types_hash'") server.shutdown() ''; } ) pkgs/data/misc/mailcap/default.nix +3 −0 Original line number Diff line number Diff line { lib , stdenv , fetchurl , nixosTests # updater , git Loading Loading @@ -44,6 +45,8 @@ stdenv.mkDerivation rec { exec nix-update --version "$VERSION" "$@" ''; passthru.tests.nginx-mime = nixosTests.nginx-mime; meta = with lib; { description = "Helper application and MIME type associations for file types"; homepage = "https://pagure.io/mailcap"; Loading Loading
nixos/modules/services/web-servers/nginx/default.nix +15 −5 Original line number Diff line number Diff line Loading @@ -129,12 +129,9 @@ let '')); commonHttpConfig = '' # Load mime types. # Load mime types and configure maximum size of the types hash tables. include ${cfg.defaultMimeTypes}; # When recommendedOptimisation is disabled nginx fails to start because the mailmap mime.types database # contains 1026 entries and the default is only 1024. Setting to a higher number to remove the need to # overwrite it because nginx does not allow duplicated settings. types_hash_max_size 4096; types_hash_max_size ${toString cfg.typesHashMaxSize}; include ${cfg.package}/conf/fastcgi.conf; include ${cfg.package}/conf/uwsgi_params; Loading Loading @@ -896,6 +893,19 @@ in ''; }; typesHashMaxSize = mkOption { type = types.ints.positive; default = if cfg.defaultMimeTypes == "${pkgs.mailcap}/etc/nginx/mime.types" then 2688 else 1024; defaultText = literalExpression ''if cfg.defaultMimeTypes == "''${pkgs.mailcap}/etc/nginx/mime.types" then 2688 else 1024''; description = '' Sets the maximum size of the types hash tables (`types_hash_max_size`). It is recommended that the minimum size possible size is used. If {option}`recommendedOptimisation` is disabled, nginx would otherwise fail to start since the mailmap `mime.types` database has more entries than the nginx default value 1024. ''; }; proxyCachePath = mkOption { type = types.attrsOf (types.submodule ({ ... }: { options = { Loading
nixos/tests/all-tests.nix +1 −0 Original line number Diff line number Diff line Loading @@ -670,6 +670,7 @@ in { nginx-etag-compression = handleTest ./nginx-etag-compression.nix {}; nginx-globalredirect = handleTest ./nginx-globalredirect.nix {}; nginx-http3 = handleTest ./nginx-http3.nix {}; nginx-mime = handleTest ./nginx-mime.nix {}; nginx-modsecurity = handleTest ./nginx-modsecurity.nix {}; nginx-moreheaders = handleTest ./nginx-moreheaders.nix {}; nginx-njs = handleTest ./nginx-njs.nix {}; Loading
nixos/tests/nginx-mime.nix 0 → 100644 +26 −0 Original line number Diff line number Diff line import ./make-test-python.nix ( { lib, pkgs, ... }: { name = "nginx-mime"; meta.maintainers = with pkgs.lib.maintainers; [ izorkin ]; nodes = { server = { pkgs, ... }: { services.nginx = { enable = true; virtualHosts."localhost" = { }; }; }; }; testScript = '' server.start() server.wait_for_unit("nginx") # Check optimal size of types_hash server.fail("journalctl --unit nginx --grep 'could not build optimal types_hash'") server.shutdown() ''; } )
pkgs/data/misc/mailcap/default.nix +3 −0 Original line number Diff line number Diff line { lib , stdenv , fetchurl , nixosTests # updater , git Loading Loading @@ -44,6 +45,8 @@ stdenv.mkDerivation rec { exec nix-update --version "$VERSION" "$@" ''; passthru.tests.nginx-mime = nixosTests.nginx-mime; meta = with lib; { description = "Helper application and MIME type associations for file types"; homepage = "https://pagure.io/mailcap"; Loading