Configurer Nginx et Php pour une charge élevée

Classé dans : Serveurs, Web, Linux | Aucun commentaire

vendredi 13 mars 2015

Sur un site qui commence à avoir de l'audience, la qualité du code est primordiale. Mais une bonne configuration du serveur l'est tout autant. 

Voici quelques astuces pour configurer Nginx et PHP-FPM pour que votre serveur puisse continuer à accueillir sereinement toujours plus de visiteurs.

Ainsi, si dans vos logs vous constatez des erreurs 499, 502, 503 ou 504, voici comment agir sur les paramètres : 

Nginx

​Editez le fichier /etc/nginx/nginx.conf.

Les 2 directives principales sont :

  • worker_processes : le nombre de process Nginx
    doit être équivalent au nombre de coeurs de votre serveur (grep "processor.*:" /proc/cpuinfo | wc -l)
  • worker_connections : le nombre de connexions que peut supporter chaque process nginx
    par défault, 768, ce qui est déjà pas mal

En résumé, le nombre de connexions simultanées que pourra accepter Nginx est égales à worker_processes x worker_connections

Attention : dans le cas où Nginx est utilisé comme proxy, le nombre de connexions max est à diviser par 2.

Plus d'infos : http://nginx.org/en/docs/ngx_core_module.html#worker_connections

Php-fpm

Editez le fichier /etc/php5/fpm/pool.d/www.conf

Les principales directives qui vous nous servir ici sont : 

  • pm.max_children = 100
  • pm.start_servers = 64
  • pm.min_spare_servers = 2
  • pm.max_spare_servers = 64

Les valeurs indiquées sont celles que nous utilisons sur des frontaux web très sollicités.