J'ai plusieurs applications Web en production qui utilisent des montages NFS pour partager des ressources (généralement des fichiers d'actifs statiques) entre des têtes Web. Dans le cas où un montage NFS devient indisponible, Apache se bloque un transfert de fichiers qui ne sont pas accessibles, le noyau se connectera:Récupération d'Apache à partir d'un montage NFS monté non disponible
Nov 2 14:21:20 server2 kernel: nfs: server server1 not responding, still trying
Je reproduit le comportement dans RHEL5 en cours d'exécution NFS v3 et Apache 2.2.3:
Créer un montage NFS sur Server1 (contenu de mon/etc/exports)
/srv/test_share server2(rw)
monter le partage NFS sur Server2 (contenu de mon/etc/fstab)
server1:/srv/test_share /mnt/test_share nfs defaults 0 0
Installation d'un hôte virtuel dans Apache avec un fichier HTML simple référencement des fichiers d'images stockées sur les sharen NFS
Chargez le site, le code html et fichiers image tout retour 200
Démontez le partage NFS, chargement de la page retourne 404s pour les images référencées
Remonter le partage NFS
Simule un plantage NFS en désactivant NFS sur Server1 - le rechargement du site se bloque en récupérant les fichiers référencés.
Les recherches Internet jusqu'à présent n'ont pas abouti à une bonne solution. Fondamentalement, le comportement souhaité serait pour le serveur Web de retourner 404 et ne pas se bloquer jusqu'à ce que le montage NFS récupère.
Cheers,
Ben
Le montage en douceur et la définition de la valeur du délai d'expiration permettent à Apache de renvoyer 404s. Prochaine étape: surveiller le montage ... J'ai mis mon timeout un peu plus bas à 2. Quand le montage NFS est devenu disponible, les choses ont été servies correctement à nouveau. – benr75
a fonctionné pour moi, aussi, mais j'ai aussi dû ajouter 'proto = udp' pour éviter d'avoir de gros décalages dans les délais. Avec 'proto = tcp' (par défaut sur ma machine) les délais d'attente sont arrivés suffisamment rapidement, mais surtout sous charge, ils ont tendance à empirer, ne venant qu'après 20 secondes environ. Je suis content d'avoir testé la configuration (avec un simple appel 'ab'), sinon je n'aurais pas remarqué ce comportement étrange. –