From b995991779a4d480a9d368fe9eff01822f0ed67e Mon Sep 17 00:00:00 2001 From: Julien Moutinho <julm@sourcephile.fr> Date: Wed, 11 Mar 2020 21:34:09 +0100 Subject: [PATCH] nginx: improve logging --- servers/mermet/nginx.nix | 17 +++++++ servers/mermet/nginx/sourcephile.fr/git.nix | 53 +++++++++++---------- servers/mermet/nginx/sourcephile.fr/www.nix | 12 ++++- 3 files changed, 56 insertions(+), 26 deletions(-) diff --git a/servers/mermet/nginx.nix b/servers/mermet/nginx.nix index 49f5b6c..1ab8d6e 100644 --- a/servers/mermet/nginx.nix +++ b/servers/mermet/nginx.nix @@ -72,6 +72,19 @@ config = { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; + + log_format json escape=json + '{' + '"time_local":"$time_local",' + '"remote_addr":"$remote_addr",' + '"status": "$status",' + '"request":"$request",' + '"body_bytes_sent":"$body_bytes_sent",' + '"http_referrer":"$http_referer",' + '"http_user_agent":"$http_user_agent",' + '"remote_user":"$remote_user",' + '"request_time":"$request_time"' + '}'; charset UTF-8; types { text/html html5; @@ -166,6 +179,10 @@ config = { server_names_hash_bucket_size 128; ''; map = '' + map $time_iso8601 $date { + default 'date-not-found'; + '~^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})' $year-$month-$day; + } # User agents that are to be blocked. #map $http_user_agent $bad_bot { # default 0; diff --git a/servers/mermet/nginx/sourcephile.fr/git.nix b/servers/mermet/nginx/sourcephile.fr/git.nix index 001e923..b5f30b5 100644 --- a/servers/mermet/nginx/sourcephile.fr/git.nix +++ b/servers/mermet/nginx/sourcephile.fr/git.nix @@ -1,28 +1,21 @@ { pkgs, lib, config, ... }: -let inherit (config) networking; - inherit (config.services) gitweb gitolite nginx; - domain = "sourcephile.fr"; - package = pkgs.gitweb.override (lib.optionalAttrs gitweb.gitwebTheme { - gitwebTheme = true; - }); - RuntimeDirectory = "gitweb"; - gitwebSocket = "/run/${RuntimeDirectory}/gitweb.sock"; - static-custom = pkgs.writeTextFile { - name = "static-custom"; - destination = "/static-custom/style.css"; - text = '' - .project_list { - width:100%; - } - ''; - }; +let + inherit (config) networking; + inherit (config.services) gitweb gitolite nginx; + domain = "sourcephile.fr"; + srv = "git"; + gitwebSocket = "/run/gitweb/gitweb.sock"; in { services.nginx = { - virtualHosts."git" = { - serverName = "git.${domain}"; + virtualHosts."${srv}" = { + serverName = "${srv}.${domain}"; forceSSL = true; useACMEHost = domain; + extraConfig = '' + access_log ${nginx.logDir}/${domain}/${srv}/access.log json buffer=32k; + error_log ${nginx.logDir}/${domain}/${srv}/error.log warn; + ''; locations = { "/" = { extraConfig = '' @@ -35,9 +28,19 @@ in }; "/static/" = { alias = "${pkgs.gitweb}/static/"; + extraConfig = '' + access_log off; + ''; }; "/static-custom/" = { - alias = "${static-custom}/static-custom/"; + root = pkgs.writeTextDir "style.css" '' + .project_list { + width:100%; + } + ''; + extraConfig = '' + access_log off; + ''; }; "/robots.txt" = { root = pkgs.writeTextDir "robots.txt" '' @@ -49,13 +52,15 @@ in Disallow: /*/snapshot/* ''; extraConfig = '' - allow all; access_log off; ''; }; }; }; }; + systemd.services.nginx.preStart = lib.mkBefore '' + install -D -d -m 750 -o ${nginx.user} -g ${nginx.group} ${nginx.logDir}/${domain}/${srv}/ + ''; systemd.services.gitweb = { description = "GitWeb FastCGI service"; script = "${pkgs.gitweb}/gitweb.cgi --fastcgi --nproc=1"; @@ -66,7 +71,7 @@ in serviceConfig = { User = gitolite.user; Group = nginx.group; - RuntimeDirectory = [ RuntimeDirectory ]; + RuntimeDirectory = [ "gitweb" ]; Restart = "always"; RestartSec = 10; }; @@ -89,8 +94,8 @@ in $export_ok = "git-daemon-export-ok"; $prevent_xss = 0; @git_base_url_list = - ( "git://git.${domain}" - , "git\@git.${domain}:" + ( "git://${srv}.${domain}" + , "git\@${srv}.${domain}:" ); # NOTE: more readable URL. $feature{'pathinfo'}{'default'} = [1]; diff --git a/servers/mermet/nginx/sourcephile.fr/www.nix b/servers/mermet/nginx/sourcephile.fr/www.nix index cb1a2f4..7bfe10f 100644 --- a/servers/mermet/nginx/sourcephile.fr/www.nix +++ b/servers/mermet/nginx/sourcephile.fr/www.nix @@ -2,15 +2,20 @@ let inherit (config) networking; inherit (config.services) nginx; domain = "sourcephile.fr"; + srv = "www"; in { services.nginx = { - virtualHosts."www" = { - serverName = "www.${domain}"; + virtualHosts."${srv}" = { + serverName = "${srv}.${domain}"; serverAliases = [ domain ]; forceSSL = true; useACMEHost = domain; root = "/home/julm/work/sourcephile/doc"; + extraConfig = '' + access_log ${nginx.logDir}/${domain}/${srv}/access.log json buffer=32k; + error_log ${nginx.logDir}/${domain}/${srv}/error.log warn; + ''; locations."/".extraConfig = '' #autoindex on; fancyindex on; @@ -21,4 +26,7 @@ in locations."/codes_sources".return = "302 http://git.${domain}"; }; }; + systemd.services.nginx.preStart = lib.mkBefore '' + install -D -d -m 750 -o ${nginx.user} -g ${nginx.group} ${nginx.logDir}/${domain}/${srv}/ + ''; } -- 2.47.2