X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mods%2Fsample-nginx.config;h=88edf1916234b97ed1778a0a5ed5a82d7934c1e5;hb=89705afa9d107873ec061105a7deb5c157c9886a;hp=e1994dcd3333dae0984aabc50ff5e833cf2f3953;hpb=1c107b2e1f0360a3031779123951a9c2425f823d;p=friendica.git diff --git a/mods/sample-nginx.config b/mods/sample-nginx.config index e1994dcd33..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,12 +69,10 @@ 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; - + # If you have used letsencrypt as your SSL provider, remove the previous two lines, and uncomment the following two (adjusting the path) instead. # ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; @@ -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 @@ -126,16 +140,30 @@ server { # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; - # With php5-fpm: - fastcgi_pass unix:/var/run/php5-fpm.sock; + # With php7.0-fpm: + 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; + } }