Ответ 1
Я нашел использование 127.0.0.1, а не localhost:
ab -n 10 -c 1 http://127.0.0.1:8090/
Обновление: Может быть, ошибка в ab: https://groups.google.com/forum/#!msg/nodejs/TZU5H7MdoII/yivu0d4LMaAJ
Я тестирую флажок, и я получаю эту ошибку:
~>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, и сайт работал нормально.
Что может быть проблема?
Я нашел использование 127.0.0.1, а не localhost:
ab -n 10 -c 1 http://127.0.0.1:8090/
Обновление: Может быть, ошибка в ab: https://groups.google.com/forum/#!msg/nodejs/TZU5H7MdoII/yivu0d4LMaAJ
Новая версия 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
Готово.
добавьте параметр -r
, который означает "Не выходить из ошибок приема сокета".
Время от времени вы можете изменить значение размера ulimit по умолчанию.
ab -r -n 10 -c 1 http://localhost:8090/
Другая связанная ошибка, которая все еще присутствует в 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)
Есть патч для этой ошибки, я выполнил шаги это руководство и, похоже, для меня теперь работает в Lion.