34 lines
965 B
Nix
34 lines
965 B
Nix
{ config, pkgs, lib, ... }:
|
|
|
|
let
|
|
cfg = config.shb.nginx;
|
|
in
|
|
{
|
|
options.shb.nginx = {
|
|
accessLog = lib.mkOption {
|
|
type = lib.types.bool;
|
|
description = "Log all requests";
|
|
default = false;
|
|
example = true;
|
|
};
|
|
|
|
debugLog = lib.mkOption {
|
|
type = lib.types.bool;
|
|
description = "Verbose debug of internal. This will print what servers were matched and why.";
|
|
default = false;
|
|
example = true;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
services.nginx.logError = lib.mkIf cfg.debugLog "stderr warn";
|
|
services.nginx.appendHttpConfig = lib.mkIf cfg.accessLog ''
|
|
log_format postdata '$remote_addr - $remote_user [$time_local] '
|
|
'"$request" <$server_name> $status $body_bytes_sent '
|
|
'"$http_referer" "$http_user_agent" "$gzip_ratio" '
|
|
'post:"$request_body"';
|
|
|
|
access_log syslog:server=unix:/dev/log postdata;
|
|
'';
|
|
};
|
|
}
|