# -----
...
+
+##
+# 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 {
+ "~*(?<p1>[0-9a-f]{8})(?<p2>[0-9a-f]{4})(?<p3>[0-9a-f]{4})(?<p4>[0-9a-f]{4})(?<p5>.*)$" "${p1}-${p2}-${p3}-${p4}-${p5}";
+}
+
+map $http_x_request_id $uuid {
+ default "${request_id}";
+ ~* "${http_x_request_id}";
+}
+
+
server {
...
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Forwarded "for=$proxy_add_x_forwarded_for; proto=$scheme";
+ proxy_set_header X-Request-ID $uuid;
}
...
# http://wiki.nginx.org/Configuration
##
+##
+# 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 {
+ "~*(?<p1>[0-9a-f]{8})(?<p2>[0-9a-f]{4})(?<p3>[0-9a-f]{4})(?<p4>[0-9a-f]{4})(?<p5>.*)$" "${p1}-${p2}-${p3}-${p4}-${p5}";
+}
+
+map $http_x_request_id $uuid {
+ default "${request_id}";
+ ~* "${http_x_request_id}";
+}
+
+
##
# This configuration assumes your domain is example.net
# You have a separate subdomain friendica.example.net
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 / {
try_files $uri /index.php?pagename=$uri&$args;
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;