refactor(nginx): websocket proxy settings

This commit is contained in:
arcnmx 2024-01-22 14:13:49 -08:00
parent a0bd07f898
commit ba7f32ddcb
4 changed files with 52 additions and 26 deletions

View file

@ -0,0 +1,34 @@
{
lib,
...
}: let
inherit (lib.modules) mkIf;
inherit (lib.options) mkOption mkEnableOption;
wsModule = { config, ... }: {
options = with lib.types; {
proxy.websocket.enable = mkEnableOption "websocket proxy";
};
config = mkIf config.proxy.websocket.enable {
extraConfig = ''
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
'';
};
};
hostModule = { config, ... }: {
imports = [ wsModule ];
options = with lib.types; {
locations = mkOption {
type = attrsOf (submodule wsModule);
};
};
};
in {
options = with lib.types; {
services.nginx.virtualHosts = mkOption {
type = attrsOf (submodule hostModule);
};
};
}