diff --git a/roles/arch32_mirror/templates/nginx.d.conf.j2 b/roles/arch32_mirror/templates/nginx.d.conf.j2
index 9b2f2f3a3ca1abe29242f39940c6877771d2e703..5dbb56d07709c8de671d2fff606a67117386bd9f 100644
--- a/roles/arch32_mirror/templates/nginx.d.conf.j2
+++ b/roles/arch32_mirror/templates/nginx.d.conf.j2
@@ -4,7 +4,7 @@ server {
     server_name  {{ arch32_mirror_domain }} pool.mirror.archlinux32.org;
     root         {{ arch32_mirror_dir }};
 
-    access_log   /var/log/nginx/{{ arch32_mirror_domain }}/access.log;
+    access_log   /var/log/nginx/{{ arch32_mirror_domain }}/access.log main;
     error_log    /var/log/nginx/{{ arch32_mirror_domain }}/error.log;
 
     include snippets/letsencrypt.conf;
@@ -18,7 +18,7 @@ server {
     server_name  {{ arch32_mirror_domain }};
     root         {{ arch32_mirror_dir }};
 
-    access_log   /var/log/nginx/{{ arch32_mirror_domain }}/access.log;
+    access_log   /var/log/nginx/{{ arch32_mirror_domain }}/access.log main;
     error_log    /var/log/nginx/{{ arch32_mirror_domain }}/error.log;
 
     ssl_certificate      /etc/letsencrypt/live/{{ arch32_mirror_domain }}/fullchain.pem;
diff --git a/roles/archive/templates/nginx.d.conf.j2 b/roles/archive/templates/nginx.d.conf.j2
index 68513db742ee3b2a917bf168f7441934266838ac..0fbcc291d00c16617ac912dcce6dba7259967315 100644
--- a/roles/archive/templates/nginx.d.conf.j2
+++ b/roles/archive/templates/nginx.d.conf.j2
@@ -3,7 +3,7 @@ server {
     listen       [::]:80;
     server_name  {{ archive_domain }};
 
-    access_log   /var/log/nginx/{{ archive_domain }}/access.log;
+    access_log   /var/log/nginx/{{ archive_domain }}/access.log main;
     error_log    /var/log/nginx/{{ archive_domain }}/error.log;
 
     include snippets/letsencrypt.conf;
@@ -18,7 +18,7 @@ server {
     listen       [::]:443 ssl http2;
     server_name  {{ archive_domain }};
 
-    access_log   /var/log/nginx/{{ archive_domain }}/access.log;
+    access_log   /var/log/nginx/{{ archive_domain }}/access.log main;
     error_log    /var/log/nginx/{{ archive_domain }}/error.log;
 
     ssl_certificate      /etc/letsencrypt/live/{{ archive_domain }}/fullchain.pem;
diff --git a/roles/archweb/templates/nginx.d.conf.j2 b/roles/archweb/templates/nginx.d.conf.j2
index bef77dded3f9cb734b313d1296cc02a07c3cfeab..20ed049769ba652e4f6ce7f47eca49ddaf123236 100644
--- a/roles/archweb/templates/nginx.d.conf.j2
+++ b/roles/archweb/templates/nginx.d.conf.j2
@@ -9,7 +9,7 @@ server {
     listen       [::]:80;
     server_name  {{ domain }};
 
-    access_log   /var/log/nginx/{{ archweb_domain }}/access.log;
+    access_log   /var/log/nginx/{{ archweb_domain }}/access.log main;
     error_log    /var/log/nginx/{{ archweb_domain }}/error.log;
 
     include snippets/letsencrypt.conf;
@@ -24,7 +24,7 @@ server {
     listen       [::]:443 ssl http2;
     server_name  {{ domain }};
 
-    access_log   /var/log/nginx/{{ archweb_domain }}/access.log;
+    access_log   /var/log/nginx/{{ archweb_domain }}/access.log main;
     error_log    /var/log/nginx/{{ archweb_domain }}/error.log;
 
     ssl_certificate      /etc/letsencrypt/live/{{ archweb_domain }}/fullchain.pem;
@@ -51,7 +51,7 @@ server {
     listen       [::]:80;
     server_name  {{ archweb_domain }};
 
-    access_log   /var/log/nginx/{{ archweb_domain }}/access.log;
+    access_log   /var/log/nginx/{{ archweb_domain }}/access.log main;
     error_log    /var/log/nginx/{{ archweb_domain }}/error.log;
 
     include snippets/letsencrypt.conf;
@@ -71,7 +71,7 @@ server {
     listen       [::]:443 ssl http2;
     server_name  {{ archweb_domain }};
 
-    access_log   /var/log/nginx/{{ archweb_domain }}/access.log;
+    access_log   /var/log/nginx/{{ archweb_domain }}/access.log main;
     error_log    /var/log/nginx/{{ archweb_domain }}/error.log;
 
     ssl_certificate      /etc/letsencrypt/live/{{ archweb_domain }}/fullchain.pem;
diff --git a/roles/flyspray/templates/nginx.d.conf.j2 b/roles/flyspray/templates/nginx.d.conf.j2
index 867e59bdbe2c7693c5b8202b4cf2d5dee86cde4b..0dd8b9d10f4421b340dc9049107761076dc2dbd9 100644
--- a/roles/flyspray/templates/nginx.d.conf.j2
+++ b/roles/flyspray/templates/nginx.d.conf.j2
@@ -7,7 +7,7 @@ server {
     listen       [::]:80;
     server_name  {{ flyspray_domain }};
 
-    access_log   /var/log/nginx/{{ flyspray_domain }}/access.log;
+    access_log   /var/log/nginx/{{ flyspray_domain }}/access.log main;
     error_log    /var/log/nginx/{{ flyspray_domain }}/error.log;
 
     include snippets/letsencrypt.conf;
@@ -22,7 +22,7 @@ server {
     listen       [::]:443 ssl http2;
     server_name  {{ flyspray_domain }};
 
-    access_log   /var/log/nginx/{{ flyspray_domain }}/access.log;
+    access_log   /var/log/nginx/{{ flyspray_domain }}/access.log main;
     error_log    /var/log/nginx/{{ flyspray_domain }}/error.log;
 
     ssl_certificate      /etc/letsencrypt/live/{{ flyspray_domain }}/fullchain.pem;
diff --git a/roles/grafana/templates/nginx.d.conf.j2 b/roles/grafana/templates/nginx.d.conf.j2
index 6a2d5931a7979795c6486da6e105eb92ed7a0d0c..73b3cef8c63c9109953468afc6319b05b3fc936f 100644
--- a/roles/grafana/templates/nginx.d.conf.j2
+++ b/roles/grafana/templates/nginx.d.conf.j2
@@ -7,7 +7,7 @@ server {
     listen       [::]:80;
     server_name  {{ grafana_domain }};
 
-    access_log   /var/log/nginx/{{ grafana_domain }}/access.log;
+    access_log   /var/log/nginx/{{ grafana_domain }}/access.log main;
     error_log    /var/log/nginx/{{ grafana_domain }}/error.log;
 
     include snippets/letsencrypt.conf;
@@ -22,7 +22,7 @@ server {
     listen       [::]:443 ssl http2;
     server_name  {{ grafana_domain }};
 
-    access_log   /var/log/nginx/{{ grafana_domain }}/access.log;
+    access_log   /var/log/nginx/{{ grafana_domain }}/access.log main;
     error_log    /var/log/nginx/{{ grafana_domain }}/error.log;
 
     ssl_certificate      /etc/letsencrypt/live/{{ grafana_domain }}/fullchain.pem;
diff --git a/roles/kanboard/templates/nginx.d.conf.j2 b/roles/kanboard/templates/nginx.d.conf.j2
index 874e52d2f15ce16635f08b78536a8c85b73c8c18..bd2ca1f7f0631385ec90717ba1dd4e0a89e55451 100644
--- a/roles/kanboard/templates/nginx.d.conf.j2
+++ b/roles/kanboard/templates/nginx.d.conf.j2
@@ -7,7 +7,7 @@ server {
     listen       [::]:80;
     server_name  {{ kanboard_domain }};
 
-    access_log   /var/log/nginx/{{ kanboard_domain }}/access.log;
+    access_log   /var/log/nginx/{{ kanboard_domain }}/access.log main;
     error_log    /var/log/nginx/{{ kanboard_domain }}/error.log;
 
     include snippets/letsencrypt.conf;
@@ -22,7 +22,7 @@ server {
     listen       [::]:443 ssl http2;
     server_name  {{ kanboard_domain }};
 
-    access_log   /var/log/nginx/{{ kanboard_domain }}/access.log;
+    access_log   /var/log/nginx/{{ kanboard_domain }}/access.log main;
     error_log    /var/log/nginx/{{ kanboard_domain }}/error.log;
 
     ssl_certificate      /etc/letsencrypt/live/{{ kanboard_domain }}/fullchain.pem;
diff --git a/roles/mailman/templates/nginx.d.conf.j2 b/roles/mailman/templates/nginx.d.conf.j2
index c742aa71e481441db5d057e2c9b032dd986a0fa7..d9fb708cacd1c92549037a74aeda10a5f91a5ccd 100644
--- a/roles/mailman/templates/nginx.d.conf.j2
+++ b/roles/mailman/templates/nginx.d.conf.j2
@@ -3,7 +3,7 @@ server {
     listen       [::]:80;
     server_name  mailman.archlinux.org;
 
-    access_log   /var/log/nginx/{{ mailman_domain }}/access.log;
+    access_log   /var/log/nginx/{{ mailman_domain }}/access.log main;
     error_log    /var/log/nginx/{{ mailman_domain }}/error.log;
 
     include snippets/letsencrypt.conf;
@@ -18,7 +18,7 @@ server {
     listen       [::]:443 ssl http2;
     server_name  mailman.archlinux.org;
 
-    access_log   /var/log/nginx/{{ mailman_domain }}/access.log;
+    access_log   /var/log/nginx/{{ mailman_domain }}/access.log main;
     error_log    /var/log/nginx/{{ mailman_domain }}/error.log;
 
     ssl_certificate      /etc/letsencrypt/live/mailman.archlinux.org/fullchain.pem;
diff --git a/roles/matrix/templates/nginx.d.conf.j2 b/roles/matrix/templates/nginx.d.conf.j2
index 271a9fb43eca62c127d433ffa84c9a355fe0de8f..4eff48b77e1f7dd25a11e7c19e7937d813f01336 100644
--- a/roles/matrix/templates/nginx.d.conf.j2
+++ b/roles/matrix/templates/nginx.d.conf.j2
@@ -7,7 +7,7 @@ server {
     listen       [::]:80;
     server_name  {{ matrix_domain }};
 
-    access_log   /var/log/nginx/{{ matrix_domain }}/access.log;
+    access_log   /var/log/nginx/{{ matrix_domain }}/access.log main;
     error_log    /var/log/nginx/{{ matrix_domain }}/error.log;
 
     include snippets/letsencrypt.conf;
@@ -22,7 +22,7 @@ server {
     listen       [::]:443 ssl http2;
     server_name  {{ matrix_domain }};
 
-    access_log   /var/log/nginx/{{ matrix_domain }}/access.log;
+    access_log   /var/log/nginx/{{ matrix_domain }}/access.log main;
     error_log    /var/log/nginx/{{ matrix_domain }}/error.log;
 
     ssl_certificate      /etc/letsencrypt/live/{{ matrix_domain }}/fullchain.pem;
diff --git a/roles/nginx/templates/nginx.conf.j2 b/roles/nginx/templates/nginx.conf.j2
index f00e034f17367d994ba73d7acfd2f56706be2e1d..a12a8bf20535d24caf638bbb535f24257a01206e 100644
--- a/roles/nginx/templates/nginx.conf.j2
+++ b/roles/nginx/templates/nginx.conf.j2
@@ -13,6 +13,10 @@ http {
     include       mime.types;
     default_type  application/octet-stream;
 
+    log_format  main  '$remote_addr $host $remote_user [$time_local] "$request" '
+                      '$status $body_bytes_sent "$http_referer" '
+                      '"$http_user_agent" "$http_x_forwarded_for" $request_time';
+
     sendfile        on;
     keepalive_timeout  65;
     client_max_body_size 16M;
@@ -26,7 +30,7 @@ http {
 
     index  index.php index.html index.htm;
 
-    access_log syslog:server=unix:/dev/log,nohostname,tag=nginx_http;
+    access_log syslog:server=unix:/dev/log,nohostname,tag=nginx_http main;
 
     include snippets/sslsettings.conf;
 
diff --git a/roles/patchwork/templates/nginx.d.conf.j2 b/roles/patchwork/templates/nginx.d.conf.j2
index b42dd26a4d64b4559ffeaa27f8f38da374e36d0b..cd08601e98102f8ee54b299f3b920f0a8a587c80 100644
--- a/roles/patchwork/templates/nginx.d.conf.j2
+++ b/roles/patchwork/templates/nginx.d.conf.j2
@@ -7,7 +7,7 @@ server {
     listen       [::]:80;
     server_name  {{ patchwork_domain }};
 
-    access_log   /var/log/nginx/{{ patchwork_domain }}/access.log;
+    access_log   /var/log/nginx/{{ patchwork_domain }}/access.log main;
     error_log    /var/log/nginx/{{ patchwork_domain }}/error.log;
 
     include snippets/letsencrypt.conf;
@@ -22,7 +22,7 @@ server {
     listen       [::]:443 ssl http2;
     server_name  {{ patchwork_domain }};
 
-    access_log   /var/log/nginx/{{ patchwork_domain }}/access.log;
+    access_log   /var/log/nginx/{{ patchwork_domain }}/access.log main;
     error_log    /var/log/nginx/{{ patchwork_domain }}/error.log;
 
     ssl_certificate      /etc/letsencrypt/live/{{ patchwork_domain }}/fullchain.pem;
diff --git a/roles/planet/templates/nginx.d.conf.j2 b/roles/planet/templates/nginx.d.conf.j2
index 2e2d841a29f4d78bf49d38d9ab028b01263465b1..507abd53f92576a03482f4edd44f2d3a862b7654 100644
--- a/roles/planet/templates/nginx.d.conf.j2
+++ b/roles/planet/templates/nginx.d.conf.j2
@@ -3,7 +3,7 @@ server {
     listen       [::]:80;
     server_name  {{ planet_domain }};
 
-    access_log   /var/log/nginx/{{ planet_domain }}/access.log;
+    access_log   /var/log/nginx/{{ planet_domain }}/access.log main;
     error_log    /var/log/nginx/{{ planet_domain }}/error.log;
 
     include snippets/letsencrypt.conf;
@@ -18,7 +18,7 @@ server {
     listen       [::]:443 ssl http2;
     server_name  {{ planet_domain }};
 
-    access_log   /var/log/nginx/{{ planet_domain }}/access.log;
+    access_log   /var/log/nginx/{{ planet_domain }}/access.log main;
     error_log    /var/log/nginx/{{ planet_domain }}/error.log;
 
     ssl_certificate      /etc/letsencrypt/live/{{ planet_domain }}/fullchain.pem;
diff --git a/roles/public_html/templates/nginx.d.conf.j2 b/roles/public_html/templates/nginx.d.conf.j2
index 034af8e11e9428a51b52141966922ba473a83909..b187989159b143f1304709105c5641c473a13dd6 100644
--- a/roles/public_html/templates/nginx.d.conf.j2
+++ b/roles/public_html/templates/nginx.d.conf.j2
@@ -4,7 +4,7 @@ server {
     server_name  {{ public_domain }} www.{{ public_domain }};
     root         /srv/public_html;
 
-    access_log   /var/log/nginx/{{ public_domain }}/access.log;
+    access_log   /var/log/nginx/{{ public_domain }}/access.log main;
     error_log    /var/log/nginx/{{ public_domain }}/error.log;
 
     include snippets/letsencrypt.conf;
@@ -22,7 +22,7 @@ server {
     server_name  {{ public_domain }} www.{{ public_domain }};
     root         /srv/public_html;
 
-    access_log   /var/log/nginx/{{ public_domain }}/access.log;
+    access_log   /var/log/nginx/{{ public_domain }}/access.log main;
     error_log    /var/log/nginx/{{ public_domain }}/error.log;
 
     ssl_certificate      /etc/letsencrypt/live/{{ public_domain }}/fullchain.pem;
diff --git a/roles/security_tracker/templates/nginx.d.conf.j2 b/roles/security_tracker/templates/nginx.d.conf.j2
index c03b30c258e02b6873338fb66cea362d7d170947..3163443ff89fe7d74e26d1e5a104f7d6bc1b2aef 100644
--- a/roles/security_tracker/templates/nginx.d.conf.j2
+++ b/roles/security_tracker/templates/nginx.d.conf.j2
@@ -7,7 +7,7 @@ server {
     listen       [::]:80;
     server_name  {{ security_tracker_domain }};
 
-    access_log   /var/log/nginx/{{ security_tracker_domain }}/access.log;
+    access_log   /var/log/nginx/{{ security_tracker_domain }}/access.log main;
     error_log    /var/log/nginx/{{ security_tracker_domain }}/error.log;
 
     include snippets/letsencrypt.conf;
@@ -22,7 +22,7 @@ server {
     listen       [::]:443 ssl http2;
     server_name  {{ security_tracker_domain }};
 
-    access_log   /var/log/nginx/{{ security_tracker_domain }}/access.log;
+    access_log   /var/log/nginx/{{ security_tracker_domain }}/access.log main;
     error_log    /var/log/nginx/{{ security_tracker_domain }}/error.log;
 
     ssl_certificate      /etc/letsencrypt/live/{{ security_tracker_domain }}/fullchain.pem;
diff --git a/roles/sources/templates/nginx.d.conf.j2 b/roles/sources/templates/nginx.d.conf.j2
index e596c886924f85c8ffa31445e5237e27044e8f28..9f6f7d47c461fee9992d428b2dcafcd27023ecc6 100644
--- a/roles/sources/templates/nginx.d.conf.j2
+++ b/roles/sources/templates/nginx.d.conf.j2
@@ -3,7 +3,7 @@ server {
     listen       [::]:80;
     server_name  {{ sources_domain }};
 
-    access_log   /var/log/nginx/{{ sources_domain }}/access.log;
+    access_log   /var/log/nginx/{{ sources_domain }}/access.log main;
     error_log    /var/log/nginx/{{ sources_domain }}/error.log;
 
     include snippets/letsencrypt.conf;
@@ -18,7 +18,7 @@ server {
     listen       [::]:443 ssl http2;
     server_name  {{ sources_domain }};
 
-    access_log   /var/log/nginx/{{ sources_domain }}/access.log;
+    access_log   /var/log/nginx/{{ sources_domain }}/access.log main;
     error_log    /var/log/nginx/{{ sources_domain }}/error.log;
 
     ssl_certificate      /etc/letsencrypt/live/{{ sources_domain }}/fullchain.pem;
diff --git a/roles/syncrepo/templates/nginx.d.conf.j2 b/roles/syncrepo/templates/nginx.d.conf.j2
index 1e69ceb4dbed15ab09102c5dac270f54529cfc33..c6999a42b826396920803879dfcdc6a6c6b7a214 100644
--- a/roles/syncrepo/templates/nginx.d.conf.j2
+++ b/roles/syncrepo/templates/nginx.d.conf.j2
@@ -4,7 +4,7 @@ server {
     server_name  {{ mirror_domain }};
     root         /srv/ftp;
 
-    access_log   /var/log/nginx/{{ mirror_domain }}/access.log;
+    access_log   /var/log/nginx/{{ mirror_domain }}/access.log main;
     error_log    /var/log/nginx/{{ mirror_domain }}/error.log;
 
     include snippets/letsencrypt.conf;
@@ -18,7 +18,7 @@ server {
     server_name  {{ mirror_domain }};
     root         /srv/ftp;
 
-    access_log   /var/log/nginx/{{ mirror_domain }}/access.log;
+    access_log   /var/log/nginx/{{ mirror_domain }}/access.log main;
     error_log    /var/log/nginx/{{ mirror_domain }}/error.log;
 
     ssl_certificate      /etc/letsencrypt/live/{{ mirror_domain }}/fullchain.pem;
diff --git a/roles/zabbix-server/templates/nginx.d.conf.j2 b/roles/zabbix-server/templates/nginx.d.conf.j2
index 6975bc54c320c503ffc954690f6081f170976827..590b6553784a0bb4b5d98a67494c066dc09f976f 100644
--- a/roles/zabbix-server/templates/nginx.d.conf.j2
+++ b/roles/zabbix-server/templates/nginx.d.conf.j2
@@ -7,7 +7,7 @@ server {
     listen       [::]:80;
     server_name  {{ zabbix_domain }};
 
-    access_log   /var/log/nginx/{{ zabbix_domain }}/access.log;
+    access_log   /var/log/nginx/{{ zabbix_domain }}/access.log main;
     error_log    /var/log/nginx/{{ zabbix_domain }}/error.log;
 
     include snippets/letsencrypt.conf;
@@ -22,7 +22,7 @@ server {
     listen       [::]:443 ssl http2;
     server_name  {{ zabbix_domain }};
 
-    access_log   /var/log/nginx/{{ zabbix_domain }}/access.log;
+    access_log   /var/log/nginx/{{ zabbix_domain }}/access.log main;
     error_log    /var/log/nginx/{{ zabbix_domain }}/error.log;
 
     ssl_certificate      /etc/letsencrypt/live/{{ zabbix_domain }}/fullchain.pem;