Merge branch '2023.03-rc' into stable
[friendica.git/.git] / mods / sample-nginx-certbot.config
index 1e08140..dd4b11b 100644 (file)
 ##
 # This configuration assumes your domain is example.net
 # You have a separate subdomain friendica.example.net
-# You want all Friendica traffic to be https using letsencrypt with cerbot
+# You want all Friendica traffic to be https using letsencrypt with certbot
 # You have an SSL certificate and key for your subdomain
 # You have PHP FastCGI Process Manager (php7.4-fpm) running on localhost
 # 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 {
+  "~*(?<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 {
   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;