Как правильно настроить apache?

12
[Удален]
4640

Форум с посещаемостью 8-10к хостов в сутки, порядка 150к хитов. Как правильно для таких целей настроить apache? Интересуют конкретно вот эти параметры, какие там необходимо указывать значения?

<IfModule prefork.c>

StartServers 5

MinSpareServers 10

MaxSpareServers 15

ServerLimit 450

MaxClients 450

MaxRequestsPerChild 500

</IfModule>

<IfModule worker.c>

StartServers 2

MaxClients 450

MinSpareThreads 25

MaxSpareThreads 75

ThreadsPerChild 25

MaxRequestsPerChild 0

</IfModule>

Машина:

CPU - 1000МГц

RAM - 768

Изначально значения MaxClients, ServerLimit стояли маленькие, и постоянно в лог писалась ошибка: *2813993 upstream timed out (110: Connection timed out) while reading response header from upstream Когда значения увеличил, ошибка стала проскакивать куда реже. Но все равно иногда вылазит. Что может вызывать такую ошибку?

Кстати, чем значение MaxClients в верхнем столбике, отличается от MaxClients в нижнем?

bugsmoran
На сайте с 18.02.2010
Offline
223
#1

Во-первых определитесь какой у Вас mpm - prefork или worker. Править нужно только тот, который есть. Чтобы посмотреть:

apache2ctl -M

Это также ответ на вопрос "Кстати, чем значение MaxClients в верхнем столбике, отличается от MaxClients в нижнем? ".

=======

Во-вторых:

StartServers 5

MinSpareServers 10

MaxSpareServers 15

ServerLimit 450 <--- не нужная директива, если MaxClients меньше 250

MaxClients 450 <--- похороните RAM. Сделайте 100. Вполне достаточно.

MaxRequestsPerChild 500 <--- слишком часто. 2000-3000 - вполне нормально. Иначе апач только и будет заниматься тем, что килять своих детей.

========

upstream timed out (110: Connection timed out) while reading response header from upstream

Эта проблема решается потом, когда все настроете. Просмотров логов апача на предмет того что же реально тормозит.

[Удален]
#2
bugsmoran:
Во-первых определитесь какой у Вас mpm - prefork или worker

"-bash: apache2ctl: command not found"

bugsmoran:
MaxClients 450 <--- похороните RAM. Сделайте 100. Вполне достаточно.

Свободно более 40%, даже в Пики нагрузок. Стоит понижать? Поставил 250, изначально столько и стояло.

chekip добавил 14.07.2010 в 03:21

bugsmoran:
Просмотров логов апача на предмет того что же реально тормозит.

Наверно глупый вопрос, но куда пишутся эти логи? Centos 5, Ispmanager. Есть только логи посещений сайтов, но там никакой информации нет. Вот путь к ним: /var/www/admin/data/logs

Zaqwr
На сайте с 08.08.2007
Offline
111
#3

MaxClients никогда не будет больше чем Serverlimit (по умолчанию 250)

если php используете как модуль apache, то вам и 100 Serverlimit будет много

настройкой одного лишь apache тут не обойтись, надо настраивать всё в совокупности, к примеру как это обычно делают поставить nginx

Администрирование, Linux, Cisco, Juniper
[Удален]
#4
Zaqwr:
nginx

Естественно nginx стоит и настроен. Но ошибка upstream timed out (110: Connection timed out) while reading response header from upstream вылетает невзирая на это. Уже на знаю в какою сторону копать.

chekip добавил 14.07.2010 в 09:33

Эта ошибка может возникать на стороне клиента? Скажем канал настолько забит, что сайт попросту не загрузился, и соединение было разорвано? Или это исключительно проблема сервера?

Если это важно, то пишется она в var/log/nginx

Zaqwr
На сайте с 08.08.2007
Offline
111
#5
chekip:
ошибка upstream timed out (110: Connection timed out) while reading response header from upstream

к пример увеличить таймаут на стороне nginx, и ещё кучу всего можно подкрутить, в зависимости от того, что вы используете

[Удален]
#6

В httpd.conf стоят значения:

1) Timeout 5

2) KeepAlive Off

3) MaxKeepAliveRequests 100

4) KeepAliveTimeout 15

В nginx.conf следующие значения:

1) sendfile on;

2) # tcp_nopush on;

3) tcp_nodelay on;

4) server_tokens off;

5) # gzip on;

6) gzip_static on;

7) gzip_comp_level 5;

8) gzip_min_length 1024;

9) # keepalive_timeout 65;

10) limit_zone myzone $binary_remote_addr 10m;

D
На сайте с 02.05.2009
Offline
68
#7
chekip:
"-bash: apache2ctl: command not found"

http://httpd.apache.org/docs/2.2/

Прочитать от корки до корки до начала какой либо оптимизации. Крутя все параметры подряд не отличая префорк от воркера можно сделать только хуже. :)

http://www.differentlocal.ru (http://www.differentlocal.ru) http://differentlocal.habrahabr.ru (http://differentlocal.habrahabr.ru)
bugsmoran
На сайте с 18.02.2010
Offline
223
#8
chekip:
"-bash: apache2ctl: command not found"

Тогда

apachectl -M
chekip:

Свободно более 40%, даже в Пики нагрузок. Стоит понижать? Поставил 250, изначально столько и стояло.

Не имеет тогда значения.

chekip:

Наверно глупый вопрос, но куда пишутся эти логи? Centos 5, Ispmanager. Есть только логи посещений сайтов, но там никакой информации нет. Вот путь к ним: /var/www/admin/data/logs

/var/log/httpd

/var/log/nginx/

/var/www/httpd-logs

[Удален]
#9

Кто может своими настройками для httpd.conf и nginx.conf поделится? Хотелось бы взглянуть на пример настроек, для сильно загруженного сервера.

Andreyka
На сайте с 19.02.2005
Offline
822
#10

chekip, кто поделится рецептами для тяжело больных?

Хочу взглянуть на список лекарств для больного с высокой температурой.

Не стоит плодить сущности без необходимости
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий