aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--infra/libkookie/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/nixos/modules/services/web-servers/nginx/location-options.nix10
2 files changed, 41 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix b/infra/libkookie/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
index e9630d379f36..8c9059a1ab06 100644
--- a/infra/libkookie/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
+++ b/infra/libkookie/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
@@ -27,6 +27,33 @@ let
) cfg.virtualHosts;
enableIPv6 = config.networking.enableIPv6;
+ defaultFastcgiParams = {
+ SCRIPT_FILENAME = "$document_root$fastcgi_script_name";
+ QUERY_STRING = "$query_string";
+ REQUEST_METHOD = "$request_method";
+ CONTENT_TYPE = "$content_type";
+ CONTENT_LENGTH = "$content_length";
+
+ SCRIPT_NAME = "$fastcgi_script_name";
+ REQUEST_URI = "$request_uri";
+ DOCUMENT_URI = "$document_uri";
+ DOCUMENT_ROOT = "$document_root";
+ SERVER_PROTOCOL = "$server_protocol";
+ REQUEST_SCHEME = "$scheme";
+ HTTPS = "$https if_not_empty";
+
+ GATEWAY_INTERFACE = "CGI/1.1";
+ SERVER_SOFTWARE = "nginx/$nginx_version";
+
+ REMOTE_ADDR = "$remote_addr";
+ REMOTE_PORT = "$remote_port";
+ SERVER_ADDR = "$server_addr";
+ SERVER_PORT = "$server_port";
+ SERVER_NAME = "$server_name";
+
+ REDIRECT_STATUS = "200";
+ };
+
recommendedProxyConfig = pkgs.writeText "nginx-recommended-proxy-headers.conf" ''
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
@@ -283,6 +310,10 @@ let
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
''}
+ ${concatStringsSep "\n"
+ (mapAttrsToList (n: v: ''fastcgi_param ${n} "${v}";'')
+ (optionalAttrs (config.fastcgiParams != {})
+ (defaultFastcgiParams // config.fastcgiParams)))}
${optionalString (config.index != null) "index ${config.index};"}
${optionalString (config.tryFiles != null) "try_files ${config.tryFiles};"}
${optionalString (config.root != null) "root ${config.root};"}
diff --git a/infra/libkookie/nixpkgs/nixos/modules/services/web-servers/nginx/location-options.nix b/infra/libkookie/nixpkgs/nixos/modules/services/web-servers/nginx/location-options.nix
index f2fc07255725..5a7f5188b6cf 100644
--- a/infra/libkookie/nixpkgs/nixos/modules/services/web-servers/nginx/location-options.nix
+++ b/infra/libkookie/nixpkgs/nixos/modules/services/web-servers/nginx/location-options.nix
@@ -101,6 +101,16 @@ with lib;
'';
};
+ fastcgiParams = mkOption {
+ type = types.attrsOf types.str;
+ default = {};
+ description = ''
+ FastCGI parameters to override. Unlike in the Nginx
+ configuration file, overriding only some default parameters
+ won't unset the default values for other parameters.
+ '';
+ };
+
extraConfig = mkOption {
type = types.lines;
default = "";