web-dev-qa-db-fra.com

ab est en erreur avec apr_socket_recv: connexion refusée (61)

Je teste Eventlet et j'obtiens cette erreur:

~>ab -n 10 -c 1 http://localhost:8090/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.Apache.org/

Benchmarking localhost (be patient)...apr_socket_recv: Connection reset by peer (54)
Total of 2 requests completed

Le site Web fonctionne à localhost: 8090/et renvoie 200 OK.

J'ai eu le même problème avec Tomcat, encore une fois, le site Web a bien fonctionné.

Quel pourrait être le problème?

78
Blankman

J'ai trouvé que l'utilisation de 127.0.0.1 plutôt que celle de localhost fonctionnait:

ab -n 10 -c 1 http://127.0.0.1:8090/

Mise à jour: peut avoir été un bogue dans ab: https://groups.google.com/forum/#!msg/nodejs/TZU5H7MdoII/yivu0d4LMaAJ

177
dkam

Apache de la nouvelle version a résolu le problème. Il suffit de reconstruire ab.

Essayez de télécharger le dernier paquet depuis http://archive.Apache.org/dist/

Vous devez patcher Apache et construire un nouveau ab.

$ wget http://archive.Apache.org/dist/httpd/httpd-2.3.16-beta.tar.bz2
$ tar jxvf httpd-2.3.16-beta.tar.bz2 
$ cd httpd-2.3.16-beta
$ ./configure

Il suffit de construire ab, qui se trouve dans le dossier de support.

$ cd support
$ make
...
$ ./ab -n 10 -c 1 http://localhost:8090/

Si votre Apache est très ancien, corrigez-le et construisez comme ci-dessus.

$ wget https://www.rtfm.ro/download/patches/ab.patch --no-check-certificate
$ patch -p0 < ./ab.patch

Terminé.

12
Sun Liwen

ajouter le -r option qui signifie Ne pas quitter sur socket reçoit des erreurs. Parfois, vous pouvez modifier la valeur de taille ulimit par défaut. ab -r -n 10 -c 1 http://localhost:8090/

6
Fan Yer

Un autre bug lié qui est toujours présent dans ab (Apache-2.4.29) est qu'il ne prend que le premier résultat de getaddrinfo. C'est probablement ce bug qui est mentionné par Jürgen Strobel dans un commentaire . Disons que vous avez /etc/hosts qui ressemble à ceci:

127.0.0.1   localhost.localdomain   localhost
::1     localhost.localdomain   localhost

Le premier résultat renvoyé par getaddrinfo pour localhost est ::1. ab essaie donc de se connecter via IPv6 et échoue. La solution consiste à utiliser 127.0.0.1: ab -n 10 127.0.0.1/. Ou réorganisez les lignes. Cependant, dans mon cas, cela dit:

Benchmarking localhost (be patient)...apr_socket_recv: Connection refused (111)
1
x-yuri

Il existe un correctif pour ce bug, j'ai suivi les étapes de ce guide et il semble fonctionner pour moi maintenant dans Lion.

0
bithavoc