diff --git a/mods/sample-nginx-certbot.config b/mods/sample-nginx-certbot.config index 1e081404f8..280bb2ab60 100644 --- a/mods/sample-nginx-certbot.config +++ b/mods/sample-nginx-certbot.config @@ -36,6 +36,23 @@ # You have Friendica installed in /var/www/friendica ## +## +# by https://syshero.org/2018-04-13-nginx-unique-request-identifier/ +# if X-Request-ID is set, NGINX will forward the same value to the next upstream +# if the header is not set, NGINX will generate a random request identifier and add it to the request. +# +# To guarantee backward compatibility, map to format the $request_id variable to a format that matches any old setups. +## + +map $request_id $formatted_id { + "~*(?[0-9a-f]{8})(?[0-9a-f]{4})(?[0-9a-f]{4})(?[0-9a-f]{4})(?.*)$" "${p1}-${p2}-${p3}-${p4}-${p5}"; +} + +map $http_x_request_id $uuid { + default "${request_id}"; + ~* "${http_x_request_id}"; +} + server { listen 80; server_name friendica.example.net; @@ -59,6 +76,9 @@ server { # allow uploads up to 20MB in size client_max_body_size 20m; client_body_buffer_size 128k; + + # add the request id header to show it in the HTTP header output + add_header X-Request-ID $uuid; # rewrite to front controller as default rule location / { @@ -105,6 +125,8 @@ server { include fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + + fastcgi_param HTTP_X_REQUEST_ID $uuid; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k;