J'essaie d'obtenir des déploiements atomiques, je ne veux pas perdre/abandonner des demandes.
Je déploie le code en utilisant Capistrano, une situation classique où vous avez un répertoire 'courant' qui est un lien symbolique à la dernière version dans le dossier 'release'. J'utilise Nginx, PHP 5.5 FPM avec Opcache. En suivant l'idée d'utiliser $realpath_root dans Nginx, je m'attendais à ce qu'un simple rechargement de Nginx suffise, mais ce n'est pas le cas. Avec le rechargement de nginx, il semble que je ne perde aucune demande mais que php-fpm exécute toujours le code de l'ancien répertoire précédent. Si je fais un 'php-fpm reload', php-fpm lit le code à partir du nouveau répertoire, mais je vois toujours que je perds des requêtes :
recv() a échoué (104 : Connexion réinitialisée par l'homologue) lors de la lecture de l'en-tête de la réponse depuis l'amont
La question est la suivante : Dois-je recharger PHP FPM ou non ?
D'après ce que j'ai compris, nginx transmet le chemin à php-fpm et à partir du journal de débogage de nginx, je peux voir que le chemin transmis est le bon mais que php-fpm exécute toujours l'ancien.
2014/09/23 17:13:22 [debug] 26234#0: *1742 http script var: "/shop/www/htdocs/current/web"
2014/09/23 17:13:22 [debug] 26234#0: *1742 posix_memalign: 00000000010517A0:4096 @16
2014/09/23 17:13:22 [debug] 26234#0: *1742 http script copy: "SCRIPT_FILENAME"
2014/09/23 17:13:22 [debug] 26234#0: *1742 http script var: "/shop/www/htdocs/ive/releases/20140923124417/web"
2014/09/23 17:13:22 [debug] 26234#0: *1742 http script var: "/app.php"
2014/09/23 17:13:22 [debug] 26234#0: *1742 fastcgi param: "SCRIPT_FILENAME: /shop/www/htdocs/live/releases/20140923124417/web/app.php"
2014/09/23 17:13:22 [debug] 26234#0: *1742 http script copy: "DOCUMENT_ROOT"
2014/09/23 17:13:22 [debug] 26234#0: *1742 http script var: "/shop/www/htdocs/live/releases/20140923124417/web"
2014/09/23 17:13:22 [debug] 26234#0: *1742 fastcgi param: "DOCUMENT_ROOT: /shop/www/htdocs/live/releases/20140923124417/web"
2014/09/23 17:13:22 [debug] 26234#0: *1742 http script copy: "APPLICATION_ENV"
Qu'est-ce que j'ai manqué ?