Tool.Yun
Outils pour les développeurs
Aide-mémoire PowerShell
Aide-mémoire de la commande chmod
Aide-mémoire des commandes Tmux
Aide-mémoire des commandes Zellij
Aide-mémoire des commandes à l'écran
Bash Cheatheet
Docker Cheatheet
Docker Compose Cheatheet
Docker Swarm Cheatheet
Dockerfile Cheatheet
Feuille de triche
Feuille de triche de Markdown
Feuille de triche regex commune
Git Cheatheet
Git sémantique commit trichetheet
JQ TicheSheet
JSONPath Syntax Cheatheet
K8S Cheatheet
Nano Cheatheet
Nginx trichetheet
SED CHRYSHEET
Sélectionneurs CSS
Vim Cheatheet
Xpath syntaxe Cheatheet
Décodeur de code QR
Générateur de code QR
Générateur de code QR WiFi
Générateur de code-barres
Générateur de contacts QR
Lecteur de code-barres
Validateur GTIN
tools.epc-qrcode-generator.name
Base64 Encodeur / décodeur hexagonal
Base64 Encodeur de chaîne / décodeur
CSV aux données
Caractères Unicode à Java Entities Converter
Computer de consommation d'énergie et de dépenses
Convertisseur d'unité de stockage de données
Convertisseur dBm mW
Convertisseur de base entier
Convertisseur de coordonnées géographiques
Convertisseur de fichiers Base64
Convertisseur de format de variables Env
Convertisseur de propriétés
Convertisseur numérique romain
De nombreux convertisseurs d'unités
Excel aux données
Générateur ulide
Normalizer par e-mail
Texte au binaire UTF-8
Texte à Unicode
Torrent à l'aimant
ANSIBLE Vault Crypt Decrypt
Analyseur JWT
Analyseur SAML
Bcrypt
Calculateur CRC
Certificat / analyseur clé
Chiffrement de chaînes Jasypt
Chiffrement de fichiers PGP
Convertisseur de certificat SSL
Cryptage PGP
Cryptage RSA
Crypter / décrypter le texte
Cryptographie d'âge
Encodeur/décodeur Bech32
Générateur HMAC
Générateur JWT
Générateur de RSE
Générateur de certificat x509
Générateur de paires de clés ECDSA
Générateur de paires de clés ED25519
Générateur de paires de clés RSA
Hachage Argon2
Hachage de fichiers
Niceware Octets en phrase de passe
Partage de secrets de Shamir
Paseto / Paserk public / privé
Paseto / paserk local
Pgp keygen
Signataire et vérificateur RSA / DSA / ECDSA
Texte de hachage
Alarme
Alarme Cron / en semaine
Analyseur de fichiers ical
Calculateur ETA
Calculateur TTL
Calculatrice de durée
Calculatrice de durée de date
Calculatrice de jours
Chronomètre
Compte à rebours
Convertisseur de date
Convertisseur de fuseau horaire
Convertisseur de numéros de semaine
Générateur ical
Quel jour ?
fusion ical
Convertisseur de format Docker Compose
Docker Compose vers un fichier .env
Docker Composer to Docker Run Converter
Docker Inspecter à Docker Run
Docker Run to Kubernetes
Docker Run vers des quadroutes
Docker compose aux quadlets
Docker compose à kubernetes
Docker exécuté vers Docker Compose Converter
Générateur RBAC Kubernetes
Générateur d'étiquettes Dockerfile
Trafik Docker compose Maker
Téléchargeur d'images Docker
Validateur Docker Compose
Étiquettes Docker Pangolin
Analyseur de téléphone et formateur
Calculateur SLA
Calculateur d'IMC
Calculateur de rythme de course
Chercheur de codes de pays ISO 3166
Compatibilité des licences logicielles
Convertisseur de calendrier
Convertisseur de devises
Convertisseur en majuscules RMB
Dictionnaire en ligne
Directives d'éclairage IES
Explication des commandes Shell
Recherche ISO 639
Recherche Unicode
VALIDATEUR DE LUHN
VALIDATEUR IBAN et PARSER
VATURE VALIDATEUR
Validateur ISBN et analyseur
Vérificateur de carte de crédit
Générateur d'expressions Cron
Amélioration et minification CSS/JS
Convertisseur de devis
Convertisseur de fichiers hexadécimal
Convertisseur en boucle
Escaper de la chaîne
Générateur GitIgnore
Générateur d'attributs Git
Générateur de chaînes de connexion à la base de données
Générateur de courrier
Générateur de création de bases de données
Générateur de fausses données
Générateur de favori
Générateur de paramètres SQL
Générateur de scripts de test de charge K6
Générateur de secrets Django
Générateur de tables de base de données
Highlighter de code / scripts
Insert JSON à SQL
JSON à Protobuf
JSON à TypeScript
Javascript Unobfuscator / Unpacker
Jolie
Meta Generator ouvrir
Minificateur SQL
Minuterie de pomodoro
Obfuscateur JavaScript
SQL Prettify et Format
Stacktrace plus jolie
Séparateur de fichiers
Testeur API
Testeur Picomatch
Testeur d'échappement ANSI
Testeur d'interface utilisateur de fanfaronnade
Éditeur de commandes CLI
Calculateur d'amortissement
Convertisseur UUID
Générateur UUIDS
Générateur de code OTP
Générateur de code PIN
Générateur de mots de passe Diceware
Générateur de nanoïdes
Générateur de nombres aléatoires
Générateur de numératoires
Générateur de phrase passe
Générateur de phrases passagères BIP39
Générateur de token
Aperçu SVG
Comparateur d'images
Convertisseur Heic
Convertisseur ICO / PNG
Convertisseur de formats d'image
Filigrane
GIF vers MP4
Image EXIF ​​/ Metadata / GPS / JPEG Quality Reader
Image Resizer
Image et PDF OCRIE
Image à SVG (Potrace)
Inverseur de couleur d'image
Magnétophone
Rogner l'image
Supprimer l'arrière-plan de l'image
Supprimer l'exif
Cueilleur de cartes
Flipper de monnaie
Roue de fortune
Rouleau de dés
Analyseur de taille JSON
Aplatisseur JSON / Undeptener
CSV vers JSON
Convertisseur JS à JSON
Convertisseur JSON à JS
Convertisseur JSON à YAML
Convertisseur de chaîne JSON
Entité JSON à Java
Fusion JSON
JSON Diff
JSON Escaper / UNSCAPER
JSON MINIFY
JSON PRUTTIFY ET FORMAT
JSON aux données
JSON pour s'opposer
JSON vers .env
JSON vers MessagePack
JSON à C
JSON à CSV
JSON à PHP Code
JSON à PHP-Array
JSON à Python
JSON à SQL DDL
JSON à Schema
JSON à TOML
JSON à TS
JSON à XML
JSON à aller
Linter JSON
Maître de tri JSON
Message Pack vers JSON
ObjGen vers JSON
PHP-Array à JSON
Requête JSON
Rédacteur en chef JSON
Testeur JQ / JSONPath
tools.json-patch.name
Aide-mémoire de câblage RJ45 Cat6
Analyser de courrier électronique à rebond
Analyseur URL
Analyseur de cookies
Analyseur de rapport DMARC
Analyseur par e-mail
Calculateur de résistance
Chercheur de propriétés LDAP activeIrectory
Console du port série
Convertisseur GZIP / Deflate
Convertisseur brut intelligent
Convertisseur de codage mime
Convertisseur de numéro de point flottant
Convertisseur moyen-endien
Convertisseur objetId MongoDB
Décodeur EMV TLV
Décodeur URL de partage SharePoint
Décodeur de transactions ETH
Détecteur / décodeur de charme de texte
Détecteur de type de fichier
Encodeur / décodeur hexagonal
Extension d'URL courtes
Extracteur d'identification de flocon de neige
Générateur TCPDUmp
Générateur d'URL
Générateur de commandes Nmap
Informations sur le kicode
Lecteur de fichiers parquet
Masque de données sensible
Outlook Safelink Decoder
Parser MSG Outlook
Testeur DNS
Testeur HTTPS
Testeur de pixels morts
Testeur de propagation DNS
键盘测试器
Aperçu Markdown
Coller comme marquage
Différence Markdown
Epub vers Markdown
Générateur de TOC Markdown
Générateur de tableaux Markdown
HTML à Markdown
Markdown Lorem Ipsum
Markdown vers données
Markdown vers texte
Markdown à Docx
Markdown à HTML
Tableau de marque Beautifier
tools.markdown-format-converter.name
Éditeur de Markdown
Calculateur de pourboire
Calculatrice binaire
Convertisseur de formats mathématiques
OCR mathématique
Visualiseur de courbes trigonométriques/équations
Évaluateur mathématique
Calculatrice de distance GEO
Calculatrice du rapport d'aspect
Pourcentage de calculatrice
Référence
Compresseur PDF
Concaner PDF
Crypte PDF
Extracteur de page PDF
Extracteur de texte PDF
HTML vers PDF
PDF décrypter et déverrouiller
Pdf linéarize / fastweb
Vérificateur de signature PDF
Convertisseur d'accélération
Convertisseur d'angle
Convertisseur d'illuminance
Convertisseur d'unités de masse
Convertisseur d'unités de pression
Convertisseur d'unités de zone
Convertisseur d'énergie
Convertisseur d'énergie alimentaire
Convertisseur de débit volumique
Convertisseur de forces
Convertisseur de fréquence
Convertisseur de préfixes SI
Convertisseur de puissance
Convertisseur de température
Convertisseur de vitesse
Convertisseur des unités de longueur
Convertisseur des unités de volume
Ordinateur de fitness
Analyseur de force de mot de passe
Autorisation SIP
Calculateur IPv4 / 6 à CIDR (S)
Calculateur de fiabilité RAID
Calculateur de raid
Calculateur de taux de transfert de données
Calculateur visuel de sous-réseau
Calculatrice IPv4 / 6 CIDR à la plage IP
Calculatrice de ChMOD
Calculatrice de disque dur
Calculatrice de sous-réseau IPv4
Calculatrice de sous-réseau IPv6
Calculatrice de zpool RAID
Convertisseur d'adresse IPv4
Convertisseur d'adresse IPv6
Convertisseur d'adresse MAC
Convertisseur punycode
Curl Generator
Dnsbl
Décodeur ARPA
Décodeur X-VR-Spamcause
Désinfectant Har
Emplacement IP Geo
Entiers vers ipv4 / ipv6
Expanseur de plage IPv4
Force de mot de passe zxcvbn
Formateur Nginx
Formateur de commandes Shell
Générateur Apache Logrotate
Générateur Bimi DNS
Générateur DKIM DNS
Générateur DMARC DNS
Générateur DNS PTR
Générateur DNS SPF
Générateur FSTAB
Générateur HTACCESS
Générateur HTPASSWD / HTACCESS
Générateur IPv6 ULA
Générateur RSYNC
Générateur WPA PSK
Générateur d'adresses MAC
Générateur d'autherines de base
Générateur d'option43
Générateur de commandes UFW
Générateur de commandes d'arrêt
Générateur de configuration de Wireguard
Générateur de crontab
Générateur de ports aléatoires
Générateur iptables
IPv4-6 / iPrange / CIDR dans iPrange / CIDR / IPMask
Les sous-réseaux IP excluent le calculatrice
Linéariseur de commandes Shell
Listeur de sous-réseaux IPv4
Mon adresse IP
Numéros de port
Ping
Recherche d'adresse MAC
Requêtes DNS
Requêtes DNS/RDAP Cloudflare
Testeur WebSocket
Testeur de microphone
Testeur de ports TCP/UDP
Téléchargeur multi-link
Vérificateur Whois
Zpool Cheatheet
générateur de ligne de commande firewalld
tools.restic-command-generator.name
tools.url-redirection-checker.name
Linter TOML
TOML à JSON
TOML à YAML
Calculatrice de Levenshtein
Comparer la police
Convertisseur de cas
Convertisseur de code Morse
Convertisseur de disposition de clavier
Convertisseur de liste
Convertisseur rune
Diagramme de structure de dossiers
Emballer des fichiers pour l'IA
Encodeur / décodeur de jetons GPT
Estimateur de jeton GPT
Exportateur de Mermaid
Extraire du texte de HTML
Finder de lignes en double
Format unicode
Générateur Lorem Ipsum
Générateur de citations
Générateur de commande SED
Générateur de texte ASCII Art
Générateur/Bannière Zalgo
Image à Ascii Art
JSON vers TOON
Lecteur RSVP
Mots distincts
Obfuscateur de cordes
Partager le lien social
Remplaceur de texte intelligent et linebreaker
Répertorie le comparateur
Splitter rapide de l'IA
Statistiques de texte
Sélecteur d'emojis
Sélecteur de lignes aléatoires
TOON vers JSON
Tabulation pour espaces
Testeur Regex
Texte aux noms Unicode
Texte diff
Texte à l'alphabet de l'OTAN
Traducteur texte
Unicode à GSM-7
Vérificateur I et L
Analyseur d'agent utilisateur
CSS Gettificateur
Chaîne de slufier
Codes d'état HTTP
Convertisseur CSS XPATH
Convertisseur REM Pixel
Convertisseur d'unités CSS
Convertisseur de couleurs
Encoder / décoder les chaînes formatées
Fragment de recherche de texte d'URL
Futur d'URL
Générateur URL UTM
Générateur d'espace réservé SVG
Générateur de gradient CSS
HTML GARTIFIER
HTML vers XHTML
HTML vers données
Image à CSS
Informations sur l'appareil
Minficateur HTML
Nettoyant URL
Nettoyer HTML
Roue de couleur
Types de mime
Vérificateur de contraste de couleur
Échapper aux entités HTML
Éditeur HTML WYSIWYG
Formateur XML
Linter XML
ObjGen vers HTML
Testeur XSLT
Testeur xpath
XML à JSON
Apllareur YAML / Undeptener
Fusion de Yaml
YAML à JSON Converter
YAML à TOML
Yaml Prettify and Format

Nginx trichetheet

Configuration Nginx et commandes utiles

nginx is a web server, reverse proxy and load balancer. Configuration is a tree of contexts — main → events / http → server → location — and a directive is only valid in the contexts that define it.

🛠 Service & CLI

# check the configuration before you break production
sudo nginx -t

# print the entire resolved configuration, includes and all
sudo nginx -T

# reload without dropping connections
sudo nginx -s reload
sudo systemctl reload nginx

# start, stop, restart, status
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl status nginx

# version, and the modules it was built with
nginx -V

# enable a site (Debian/Ubuntu layout)
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

# watch the requests come in
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log

💡 nginx -t then nginx -s reload — never restart on a live server if you can avoid it. A reload keeps existing connections alive; a restart drops them.

📁 Where Things Live

PathWhat it holds
/etc/nginx/nginx.confThe main file — worker settings and the http block
/etc/nginx/conf.d/*.confIncluded by default on RHEL-style installs
/etc/nginx/sites-available/Site configs on Debian/Ubuntu
/etc/nginx/sites-enabled/Symlinks to the sites that are actually live
/var/log/nginx/access.logEvery request
/var/log/nginx/error.logErrors, and anything the workers complain about
/var/www/htmlThe conventional document root

🧱 Config Skeleton

user www-data;
worker_processes auto;

events {
  worker_connections 1024;
}

http {
  include       /etc/nginx/mime.types;
  default_type  application/octet-stream;
  sendfile      on;
  keepalive_timeout 65;

  server {
    listen 80;
    server_name example.com;

    location / {
      root /var/www/html;
      index index.html;
    }
  }
}

🎧 listen & server_name

server {
  # plain HTTP
  listen 80;

  # HTTPS, with HTTP/2
  listen 443 ssl;
  http2 on;

  # IPv6 as well, or IPv6 only
  listen [::]:80;
  listen [::]:80 ipv6only=on;

  # the fallback server for requests that match no other server_name
  listen 80 default_server;

  # one name, several names, wildcards, or a regex
  server_name example.com;
  server_name example.com www.example.com;
  server_name *.example.com;
  server_name ~^(?<sub>.+)\.example\.com$;

  # requests that arrive with no Host header
  server_name "";
}

📄 Serving Files

server {
  listen 80;
  server_name example.com;
  root /var/www/example.com;
  index index.html index.htm;

  # try the file, then the directory, then fall back — the SPA pattern
  location / {
    try_files $uri $uri/ /index.html;
  }

  # cache fingerprinted assets hard
  location ~* \.(js|css|png|jpe?g|gif|svg|woff2?)$ {
    expires 1y;
    add_header Cache-Control "public, immutable";
    access_log off;
  }

  # a directory listing, when you actually want one
  location /downloads/ {
    autoindex on;
  }

  # a single file
  location = /robots.txt {
    root /var/www/example.com;
    log_not_found off;
  }
}

⚠️ root vs alias: root appends the whole URI to the path, alias replaces the matched prefix. With location /static/ { root /var/www; } a request for /static/a.png reads /var/www/static/a.png; with alias /var/www/assets/; it reads /var/www/assets/a.png. Always end an alias path with /.

📍 Location Matching

nginx does not pick locations top to bottom — it picks by modifier, in this order:

ModifierExampleMeaningPriority
=location = /healthExact match1 — wins immediately
^~location ^~ /static/Prefix match that stops regex matching2
~location ~ \.php$Case-sensitive regex, first match in file order3
~*location ~* \.(jpe?g)$Case-insensitive regex3
(none)location /images/Prefix match — the longest one wins if no regex did4
location = /health { return 200 "ok\n"; }   # checked first, cheapest
location ^~ /assets/ { root /var/www; }     # never falls through to the regex below
location ~* \.(png|jpg)$ { expires 30d; }
location / { try_files $uri $uri/ =404; }   # the catch-all

🔀 Redirects & Rewrites

# permanent redirect to the canonical host
server {
  listen 80;
  server_name www.example.com;
  return 301 https://example.com$request_uri;
}

# force HTTPS
server {
  listen 80;
  server_name example.com;
  return 301 https://$host$request_uri;
}

# temporary redirect of a single path
location /old-page {
  return 302 /new-page;
}

# rewrite with a captured segment
location /blog/ {
  rewrite ^/blog/(.*)$ /articles/$1 permanent;
}

# serve a maintenance page for everyone but your own IP
location / {
  if ($remote_addr != 203.0.113.7) {
    return 503;
  }
}

💡 Prefer return over rewrite — it is faster and clearer. Reach for rewrite only when you need to transform the path.

🔁 Reverse Proxy

server {
  listen 80;
  server_name app.example.com;

  location / {
    proxy_pass http://127.0.0.1:3000;

    # pass the client's details through to the app
    proxy_set_header Host              $host;
    proxy_set_header X-Real-IP         $remote_addr;
    proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    # timeouts: raise these for slow backends
    proxy_connect_timeout 60s;
    proxy_send_timeout    60s;
    proxy_read_timeout    60s;

    # buffering off for streaming responses (SSE, logs)
    proxy_buffering on;
  }

  # WebSockets need the upgrade headers
  location /ws/ {
    proxy_pass http://127.0.0.1:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade    $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_read_timeout 3600s;
  }
}

⚠️ The trailing slash on proxy_pass changes everything. proxy_pass http://backend; forwards /api/users as /api/users; proxy_pass http://backend/; strips the matched location prefix first.

⚖️ Load Balancing

upstream backend {
  # least_conn;              # send to the server with the fewest connections
  # ip_hash;                 # sticky sessions by client IP
  # hash $request_uri;       # sticky by URI

  server 10.0.0.1:3000 weight=3;
  server 10.0.0.2:3000;
  server 10.0.0.3:3000 max_fails=3 fail_timeout=30s;
  server 10.0.0.4:3000 backup;

  keepalive 32;              # reuse upstream connections
}

server {
  listen 80;
  location / {
    proxy_pass http://backend;
    proxy_http_version 1.1;
    proxy_set_header Connection "";   # required for keepalive to work
  }
}
MethodBehaviour
(default)Round robin, honouring weight
least_connFewest active connections wins
ip_hashSame client IP always reaches the same server
hash <key>Distribute by any variable, e.g. $request_uri
random two least_connPick two at random, then the less busy one

🔐 HTTPS

server {
  listen 443 ssl;
  http2 on;
  server_name example.com;

  ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

  ssl_protocols TLSv1.2 TLSv1.3;
  ssl_prefer_server_ciphers off;
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 1d;
  ssl_stapling on;
  ssl_stapling_verify on;

  # tell browsers to stay on HTTPS
  add_header Strict-Transport-Security "max-age=63072000" always;
}
# get and renew certificates automatically
sudo certbot --nginx -d example.com -d www.example.com
sudo certbot renew --dry-run

🚦 Limits & Access Control

http {
  # 10 MB of state ≈ 160k addresses; 10 requests/second per IP
  limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s;
  limit_conn_zone $binary_remote_addr zone=conn_limit:10m;

  server {
    # allow short bursts, queue the rest without delaying legitimate users
    location /api/ {
      limit_req zone=req_limit burst=20 nodelay;
      limit_conn conn_limit 10;
    }

    # the size of the largest upload you accept
    client_max_body_size 25m;

    # HTTP basic auth (htpasswd -c /etc/nginx/.htpasswd user)
    location /admin/ {
      auth_basic "Restricted";
      auth_basic_user_file /etc/nginx/.htpasswd;
    }

    # allow a subnet, deny the rest
    location /internal/ {
      allow 10.0.0.0/8;
      deny  all;
    }

    # do not serve dotfiles
    location ~ /\.(?!well-known) {
      deny all;
    }
  }
}

🗜 Performance

http {
  # compress text responses
  gzip on;
  gzip_vary on;
  gzip_min_length 1024;
  gzip_types text/plain text/css application/json application/javascript
             text/xml application/xml image/svg+xml;

  # kernel-level file sending
  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;

  # keep connections around for reuse
  keepalive_timeout 65;
  keepalive_requests 1000;

  # cache open file handles
  open_file_cache max=10000 inactive=30s;
  open_file_cache_valid 60s;

  # a proxy cache for upstream responses
  proxy_cache_path /var/cache/nginx keys_zone=app_cache:10m max_size=1g inactive=60m;

  server {
    location / {
      proxy_cache app_cache;
      proxy_cache_valid 200 10m;
      add_header X-Cache-Status $upstream_cache_status;
    }
  }
}

🧪 Useful Variables

VariableHolds
$hostThe Host header, or the server name that matched
$uriThe normalised path, without the query string
$request_uriThe original path with the query string
$args / $arg_nameThe whole query string / one named parameter
$schemehttp or https
$remote_addrThe client’s IP address
$proxy_add_x_forwarded_forThe existing chain plus $remote_addr
$http_<name>Any request header, e.g. $http_user_agent
$request_methodGET, POST, …
$statusThe response status
$upstream_addrWhich backend actually served the request
$upstream_response_timeHow long the backend took
$request_timeHow long nginx took, start to finish

🩺 Troubleshooting

SymptomUsual cause
502 Bad GatewayThe backend is down, or refused the connection — check the app and proxy_pass
504 Gateway TimeoutThe backend is too slow — raise proxy_read_timeout, then fix the app
413 Request Entity Too LargeRaise client_max_body_size
403 Forbidden on a static fileThe worker user cannot read the path, or a directory lacks x
The wrong site is servedNo server_name matched, so the default_server answered
Changes have no effectThe config was never reloaded, or the file is not symlinked into sites-enabled
# see the config nginx is actually running, includes resolved
sudo nginx -T | less

# which worker user needs read access
ps -o user= -C nginx | sort -u

# turn up the error log while debugging
# error_log /var/log/nginx/error.log debug;

📚 Resources

  • Official documentation
  • Directive index
  • Variable index
  • Mozilla SSL configuration generator
  • Certbot — Let’s Encrypt