Mise en place du module pagespeed

Préparation Installer le paquet nginx-extra Créer le dossier /var/ngx_pagespeed_cache pour y monter un tmpfs, 256Mo sont suffisant pour une instance Wordpress mkdir /var/ngx_pagespeed_cache echo 'tmpfs /var/ngx_pagespeed_cache tmpfs defaults,size=256M 0 0' >> /etc/fstab mount -a Configuration pour votre “server” # enable ngx_pagespeed pagespeed on; pagespeed FileCachePath /var/ngx_pagespeed_cache; # Ensure requests for pagespeed optimized resources go to the pagespeed handler # and no extraneous headers get set. location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; } location ~ "^/ngx_pagespeed_/" { } location ~ "^/ngx_pagespeed_beacon$" { } location /ngx_pagespeed_statistics { allow 127. [Lire]

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;
}

Monitorer Nginx avec Zabbix

Configuration de Nginx Le serveur nginx doit donner sont status en local via l’url http://localhost:61123/nginx_status Pour cela, il faut ajouter le " server " suivant qui sera disponible uniquement via localhost sur le port 61123: server { listen 127.0.0.1:61123; server_name localhost; location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } } Configuration de l’agent Zabbix Dans la configuration de l’agent Zabbix ajouter les paramètres suivant pour remonter au serveur les nouvelles clefs [Lire]

Offloading SSL avec Nginx

Configuration de base pour effectuer de l’offloading SSL avec Nginx.

Les header défini avec proxy_set_header pourront être utilisé au niveau du backend pour effectuer, par exemple, des redirection http vers https

server {
  listen   443 ssl; ## listen for ipv4
  server_name domaine.ltd;
  ssl                     on;
  ssl_prefer_server_ciphers on;
  ssl_protocols           SSLv3 TLSv1 TLSv1.1 TLSv1.2; #libssl > 1.0
  ssl_ciphers             RC4:HIGH:!MD5:!ADH:+DH; #HIGH:!ADH:!MD5:@STRENGTH;
  ssl_session_cache       shared:TLSSL:16m;
  ssl_session_timeout     10m;
  ssl_certificate         /etc/nginx/domaine.ltd.crt;
  ssl_certificate_key     /etc/nginx/domaine.ltd.key;

  location / {
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-By $server_addr:$server_port;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_pass http://backend;
  }

}

Article complémentaire : Redirection http vers https derrière un reverse proxy

Nginx - Serveur http haute performances

Serveur http haute performances Pourquoi Nginx ? Rapidité pour délivrer le contenu Utilise peut de ressource système Gestion de cache Clientes Serveur Ressources Utilisation de la mémoire Les processus 1 processus père X worker (sous process) X connections par worker Requêtes par secondes Requêtes simultanée Nginx / PHP ( ≥ 5.3 ) Fonctionnement GET /index.php Nginx transmet la requête a PHP Nginx transmet le résultat au client Memcached Les temps de traitement sont divisé par quatre 850 req/s sans Memcached, 3550 avec Configuration simple Fonctionnement : Sources igvita. [Lire]

Centralisation des logs Nginx avec Rsyslog

Configuration de rsyslog coté nginx Créer le fichier de configuration /etc/rsyslog.d/nginx.conf pour y placer $ModLoad imfile $InputFileName /var/log/nginx/access.log $InputFileTag nginx_access_log: $InputFileStateFile nginx_access_log $InputFileSeverity info $InputFileFacility user $InputRunFileMonitor $InputFileName /var/log/nginx/error.log $InputFileTag nginx_error_log: $InputFileStateFile nginx_error_log $InputFileSeverity info $InputFileFacility user $InputRunFileMonitor # lit le fichier de log toutes les deux secondes $InputFilePollingInterval 2 #envoie les logs en tcp a 192.1.2.3 port 514 if $syslogtag == 'nginx_access_log:' then @@(z9)192.1.2.3:514 if $syslogtag == 'nginx_error_log:' then @@(z9)192. [Lire]

Conserver l'IP du client derrière un reverse proxy

Lorsque Nginx est placé derrière un reverse proxy, celui ci avec une configuration de base logera L’IP des visiteur avec celle du reverse proxy et non avec L’IP des visiteurs. Cela peut poser des problèmes par exemple dans le cas ou vous utilisez Akismet comme anti-spam pour vos commentaires. Pour cela, dans varnish ajouter après sub vcl_recv { la ligne set req.http.X-Forwarded-For = client.ip; puis dans la configuration Nginx, dans la configuration http, ajouter [Lire]