Mots-clé : nginx

Nginx

Nginx hints / aide

Mon objectif était :

  • Si on tape l’URL sans le / à la fin, il redirige en ajoutant le / à la fin
  • Si on tape l’URL avec le / à la fin, tout doit fonctionner
  • Tout ne doit être que statique et les fichiers doivent obligatoirement exister, sauf index.html et index.htm
  • J’en suis donc arrivé à ces règles, plus « proches » de la configuration possible dans Nginx :

    1. Filtre « custom » avec / à la fin. Si oui, n’accepter que index.html ou index.htm
    2. Filtre « custom » en ignorant le / à la fin. Si oui, le nom, qui doit être forcément un fichier, sinon, rediriger en ajoutant un / pour qu’il reboucle au début
      location ~* ^/unity/(?<p>.+)/$ {
        root /web/htdocs/unity;
        try_files /$p/index.html /$p/index.htm /$p =403;
        access_log off;
        expires 1h;
      }
      location ~* ^/unity/(?<p>.+) {
        root /web/htdocs/unity;
        try_files /$p $p @redirect_with_slash_at_the_end;
        access_log off;
        expires 1h;
      }
      location @redirect_with_slash_at_the_end {
        return 301 $scheme://www.mywebsite.com$request_uri/;
      }
    

Linux / shell

Shell hints / aide

https + nginx

Pour génerer le https, avec création de tous les certificats + mise en place des renouvellements, utiliser certbot : root@inyab:~/certbot# ./certbot-auto
Déplacer certbot dans le dossier de letsencrypt pour être plus homogène : cd /etc/letsencrypt && mv ~/certbot .
S’il y a des problèmes d’accents, ordre shell pour tout chercher : grep -r -P '[^\x00-\x7f]' /etc/apache2 /etc/letsencrypt /etc/nginx
Renouvellement automatique : cd /etc/letsencrypt/certbot && ./certbot-auto renew
Si jamais ça ne fonctionne pas, mettre toute la configuration en commentaire, puis demander à générer un certificat : cd /etc/letsencrypt/certbot && ./certbot-auto --nginx -d www.monsite.com

Redirection de la sortie

stderr vers stdout command 2>&1
stdout vers un fichier et stderr vers un autre command > out > 2>error
stderr vers stdout (&1) puis stdout vers un fichier command >out 2>&1
stderr vers stdout (&1) puis stdout ajouter un texte et l’afficher, sans problème de buffering (seule solution trouvée qui fonctionne chez moi) echo "bonjour" 2>&1 | awk -W interactive '{ print "Site SokoBan > "$0; fflush(stdout); }'

Changer le prompt

J’ai vu plein de choses, de discussions un peu partout, mais celle qui a fonctionné le mieux 100% sans fautes est ici, et je résume dans ce qui suit.
Séquence de caractères « non-visibles » = qu’on veut cacher, entourée par \[ et \] \[ code \]
Dans cette séquence de caractères « non-visibles », ajouter le code d’échappement qui précise qu’on veut mettre une couleur \033[X;YYm, et remplacer :
X par 0 (foncé) ou 1 (= plus clair)
YY par un code couleur
\[\033[X;YYm\]
Black \[\033[0;30m\]
Blue \[\033[0;34m\]
Brown \[\033[0;33m\]
Cyan \[\033[0;36m\]
Green \[\033[0;32m\]
Purple \[\033[0;35m\]
Red \[\033[0;31m\]
Finir par « reset à la couleur de base » \[\033[0m\]
Exemple de prompt qui affiche toutes les couleurs et qui termine par un reset à la couleur du prompt :
export PS1="\[\033[0;30m\]Black\[\033[0;34m\]Blue\[\033[0;33m\]Brown\[\033[0;36m\]Cyan\[\033[0;32m\]Green\[\033[0;35m\]Purple\[\033[0;31m\]Red\[\033[1;30m\]Black\[\033[1;34m\]Blue\[\033[1;33m\]Brown\[\033[1;36m\]Cyan\[\033[1;32m\]Green\[\033[1;35m\]Purple\[\033[1;31m\]Red\[\033[0m\]"

Commandes "one-line"

Chercher les fichiers qui prennent de la place ncdu
Archiver au format %Y.%m.%d-%Hh%Mm%Ss tar cjf "`(date '+%Y.%m.%d-%Hh%Mm%Ss')`.archive.tar.bz2" htdocs/*

Déclaration de script

Shebang le meilleur
Merci stackoverflow
#!/usr/bin/env bash
La calculette version Linux = 10 fois plus puissante, ne pas oublier l'option "l" pour calculer avec des virgules (man bc) bc -l

Outils de capture d'écran

  • scrot = capture en ligne de commande
  • shutter meilleur que celui par défaut
sudo apt-get install scrot
sudo apt-get install shutter
Note : pour mettre shutter par défaut, lire la documentation ici.