X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mods%2Fsample-nginx.config;h=88edf1916234b97ed1778a0a5ed5a82d7934c1e5;hb=7eb26fa6bd80ca6e26f71e4be37fea0e5519d15f;hp=a6760c0ad7874460a86f67d926341b75c60387d7;hpb=e22f7a3c315368723d186b821dc6b8c836a41b6b;p=friendica.git diff --git a/mods/sample-nginx.config b/mods/sample-nginx.config index a6760c0ad7..88edf19162 100644 --- a/mods/sample-nginx.config +++ b/mods/sample-nginx.config @@ -20,6 +20,24 @@ # 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 { + "~*(?[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}"; +} + + ## # This configuration assumes your domain is example.net # You have a separate subdomain friendica.example.net @@ -35,7 +53,7 @@ server { index index.php; root /var/www/friendica; - rewrite ^ https://friendica.example.net$request_uri? permanent; + rewrite ^ https://$server_name$request_uri? permanent; } ## @@ -51,8 +69,6 @@ server { listen 443 ssl; server_name friendica.example.net; - ssl on; - #Traditional SSL ssl_certificate /etc/nginx/ssl/friendica.example.net.chain.pem; ssl_certificate_key /etc/nginx/ssl/example.net.key; @@ -72,42 +88,40 @@ server { charset utf-8; root /var/www/friendica; access_log /var/log/nginx/friendica.log; - #Uncomment the following line to include a standard configuration file - #Note that the most specific rule wins and your standard configuration - #will therefore *add* to this file, but not override it. + + # Uncomment the following line to include a standard configuration file Note + # that the most specific rule wins and your standard configuration will + # therefore *add* to this file, but not override it. #include standard.conf + # 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 / { - if ($is_args != "") { - rewrite ^/(.*) /index.php?pagename=$uri&$args last; - } - rewrite ^/(.*) /index.php?pagename=$uri last; + try_files $uri /index.php?pagename=$uri&$args; } # make sure webfinger and other well known services aren't blocked # by denying dot files and rewrite request to the front controller location ^~ /.well-known/ { allow all; - rewrite ^/(.*) /index.php?pagename=$uri&$args last; + rewrite ^ /index.php?pagename=$uri; } - # statically serve these file types when possible - # otherwise fall back to front controller - # allow browser to cache them - # added .htm for advanced source code editor library - location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ { - expires 30d; - try_files $uri /index.php?pagename=$uri&$args; - } + include mime.types; - # block these file types - location ~* \.(tpl|md|tgz|log|out)$ { - deny all; - } + # statically serve these file types when possible otherwise fall back to + # front controller allow browser to cache them added .htm for advanced source + # code editor library + #location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ { + # expires 30d; + # try_files $uri /index.php?pagename=$uri&$args; + #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # or a unix socket @@ -127,15 +141,29 @@ server { # fastcgi_pass 127.0.0.1:9000; # With php7.0-fpm: - fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; + fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; 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; + } + + # block these file types + location ~* \.(tpl|md|tgz|log|out)$ { + deny all; } # deny access to all dot files location ~ /\. { deny all; } + + # deny access to the CLI scripts + location ^~ /bin { + deny all; + } }