Ab является ошибкой с apr_socket_recv: Соединение отклонено (61)

Я тестирую флажок, и я получаю эту ошибку:

~>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

Веб-сайт работает на localhost: 8090/и возвращает 200 OK.

У меня была такая же проблема с tomcat, и сайт работал нормально.

Что может быть проблема?

Ответ 2

Новая версия apache устраняет проблему. Только нужно восстановить ab.

Попробуйте загрузить последний пакет из http://archive.apache.org/dist/

Необходимо исправить apache и создать новый 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

Только нужно создать ab, который находится в папке поддержки.

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

Если ваш апач очень старый, установите его и создайте, как указано выше.

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

Готово.

Ответ 3

добавьте параметр -r, который означает "Не выходить из ошибок приема сокета". Время от времени вы можете изменить значение размера ulimit по умолчанию. ab -r -n 10 -c 1 http://localhost:8090/

Ответ 4

Другая связанная ошибка, которая все еще присутствует в ab (apache-2.4.29), заключается в том, что она берет только первый результат из getaddrinfo. Вероятно, эта ошибка упоминается Юргеном Штробелем в комментарии. Допустим, у вас есть /etc/hosts который выглядит так:

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

Первый результат, возвращаемый getaddrinfo для localhost: ::1. Таким образом, ab пытается подключиться через IPv6 и терпит неудачу. Обходной путь должен использовать 127.0.0.1: ab -n 10 127.0.0.1/. Или изменить порядок строк. Хотя, в моем случае это говорит:

Benchmarking localhost (be patient)...apr_socket_recv: Connection refused (111)

Ответ 5

Есть патч для этой ошибки, я выполнил шаги это руководство и, похоже, для меня теперь работает в Lion.