Nginx – Ajouter/Supprimer les www pour tous ces domaines

Pour ajouter les www. a tous ces domaines

server {
    listen 80;
    server_name ~^(?!www\.)(?<domain>.+)$;
    return 301 $scheme://www.$domain$request_uri;
}

Au contraire, pour les supprimer

server {
    listen 80;
    server_name ~^(?www\.)(?<domain>.+)$;
    return 301 $scheme://$domain$request_uri;
}

Varnish et son " stockage "

Introduction

Varnish peut cacher les données en mémoire et/ou sur disque.

On peut donc lui dire qu’on lui alloue 512Mo de mémoire pour cacher et aussi 95% de l’espace libre d’une partition en ajoutant les paramètres ci-dessous :

-s malloc,512M \
-s file,/var/lib/varnish/varnish_storage.bin,95%

Le stockage " Transient "

Varnish a aussi par défaut, un cache en mémoire pour les objets de courte durée, ce cache n ‘a pas de limite par défaut, ce fonctionnement par défaut peut donc faire swaper et cracher votre serveur (ou le mien 🙂 ) {.warning}

[Lire]

Protection contre le hotlinking avec Varnish

Voici un exemple de condition à ajouter dans votre vcl recv pour protéger un dossier d’un site :

if (req.http.host == "le.domaine.a.proteger.ltd" && req.url ~ "^/l/uri/a/proteger" && (req.http.referer && req.http.referer !~ "^http://le.domaine.a.proteger.ltd/")) {
    error 403 "No hotlinking please";
}

Remplacer :

  • le.domaine.a.proteger.ltd par le domaine (attention si votre site est accessible avec et sans www)
  • /l/uri/a/proteger : par l’uri à protéger, supprimer cette partie si vous voulez protéger l’intégralité du site

Pour mettre en place le même type de protection via apache, voir cet article : Un htaccess pour les pompeurs de sites dans lequel est expliqué comment procéder avec des règles de réécriture Apache

[Lire]

Purger les mails a destination d'un domaine

Le script perl ci-dessous s’utilise en mettant en paramètre le domaine pour lequel vous voulez purger les mails :

#!/usr/bin/perl

$REGEXP = shift || die "no email-adress given (regexp-style, e.g. bl.*\@yahoo.com)!";

@data = qx</usr/sbin/postqueue -p>;
for (@data) {
  if (/^(\w+)(\*|\!)?\s/) {
     $queue_id = $1;
  }
  if($queue_id) {
    if (/$REGEXP/i) {
      $Q{$queue_id} = 1;
      $queue_id = "";
    }
  }
}

#open(POSTSUPER,"|cat") || die "couldn't open postsuper" ;
open(POSTSUPER,"|postsuper -d -") || die "couldn't open postsuper" ;

foreach (keys %Q) {
  print POSTSUPER "$_\n";
};
close(POSTSUPER);

Calculé la mémoire consommé par apache

La commande suivante va vous calculer la totalités de la mémoire utilisé par Apache ainsi que la taille de vos processus Apache.

La commande se base sur PS, les configurations d’apache et php ne sont pas lu.

Si votre processus apache se nome httpd, vous devez adaptez la commande en remplaçant apache2 par httpd 🙂

ps -ylC apache2 | awk '{x += $8;y += 1} END {print "Apache Memory Usage (MB): "x/1024; print "Average Process Size (MB): "x/((y-1)*1024)}

Template Varnish

Le but de cette configuration est de simplifier au maximum la mise en place de Varnish.

Avant d’appliquer la configuration a votre Varnish, vous devez éditer le fichier backend.vcl pour configurer votre backend.

Cette configuration reste minimaliste et utilise la configuration " builtin " qui fonctionne très bien à conditions que les RFC soient respecté.

VimTips – Remplacer les majuscules par des minuscules

  • Remplacer les minuscules en majuscules: :%s/[a-z]/\U&/
    • Remplacer les majuscules en minuscules: :%s/[A-Z]/\L&/
    • Convertir la selection en majuscule : gU
    • Convertir la selection en minuscule : gu
vim  Tips