nixos/nginx: make redirect status code configurable

Add an option to configure which code globalRedirect and forceSSL use.
It previously was always 301 with no easy way to override.
This commit is contained in:
Gabriel Fontes
2023-12-01 15:42:46 -03:00
parent 72061433dd
commit a3c60d2ddc
5 changed files with 51 additions and 8 deletions

View File

@@ -0,0 +1,25 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "nginx-redirectcode";
meta.maintainers = with lib.maintainers; [ misterio77 ];
nodes = {
webserver = { pkgs, lib, ... }: {
services.nginx = {
enable = true;
virtualHosts.localhost = {
globalRedirect = "example.com/foo";
# With 308 (and 307), the method and body are to be kept when following it
redirectCode = 308;
};
};
};
};
testScript = ''
webserver.wait_for_unit("nginx")
webserver.wait_for_open_port(80)
# Check the status code
webserver.succeed("curl -si http://localhost | grep '^HTTP/[0-9.]\+ 308 Permanent Redirect'")
'';
})