При контакте с любой проблемой производительности необходимо знать вход. Настройте свой переключатель для зеркального отражения порта веб-сервера к серверу сниффера, где Вы записываете весь Трафик HTTP. Попытайтесь коррелировать трафик с проблемой и попытаться воспроизвести проблему на тестовой машине.
Следующий шаг должен видеть то, что происходит с теми процессами. Использовать strace
и посмотрите, в котором системном вызове они ожидают. Использовать lsof
узнать дескрипторы файлов, вовлеченные в strace. ls -l /proc/
полезно также.
Как chronos сказал, это могло быть нападение slowloris.
Вы изменили владельца файлов, чтобы они были доступны для чтения / выполнения группой, но не были доступны для записи группой, и я считаю, что в этом заключается ваша проблема. Вы, вероятно, можете изменить 664 файлы, чтобы сделать их доступными для чтения и записи владельцем и группой (и доступными для чтения всем). Они не обязательно должны быть исполняемыми.
Вы создаете отдельные файлы с помощью сенсорного ввода, а затем меняете владельца файла с помощью chown. Чтобы Apache мог сам создавать свои лог-файлы, необходимы права на запись в содержащий каталог .
Используйте chown -R
(заглавная R = рекурсивный) в указанном каталоге журналов.
У меня есть те же самые журналы регистрации фантомов, которые всегда принадлежат rootу с 640 правами при создании, рабочий раунд заключается в написании скрипта для chmod или chown разрешения на имя лог-файла vhost. используя символ подстановки в конце имени файла, чтобы захватить формат даты, в конце файла. затем Крона и устанавливаешь его раз в час или раз в день, тогда ваши журналы будут иметь нужные вам разрешения
.У меня сейчас та же проблема. @Tim Александр указал мне в правильном направлении. Отключение selinux временно доказало, что проблема заключается в настройке selinux.
Так что после того, как я погуглил еще немного, я нашел предложение, которое, по сути, говорило, что нужно копировать любую конфигурацию selinux в /var/www/html в каталоге виртуального хоста.
Первое, что я сделал, это повторил проблему selinux в конфигурационных файлах, которые у меня были время от времени, о которой я писал в блог здесь: http://blog.ciuly.com/my-server/apache-on-linux-could-not-open-configuration-file-permission-denied/
Но это не было проблемой. Тем не менее, я зашел в /var/www и выпустил "ls -Z", который показал
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 html
, так что всё, что я сейчас сделал, это
chcon -R system_u:object_r:httpd_sys_content_t:s0 /www/
и обновление браузера теперь правильно показало индекс сайта, но всё равно была ошибка "can open log file" в error_log.
Затем я хорошо прочитал (снова) через https://wiki.centos.org/HowTos/SELinux
Хорошей идеей для запуска, на данный момент, является
sealert -a /var/log/audit/audit.log
Хотя вики-проект действительно говорит о том, чтобы приветствовать аудит. Я нахожу, что хочу решить все проблемы с selinux, а не только ту, которая меня сейчас беспокоит :)
Возвращаясь к нашей проблеме, sealert показывает следующее предупреждение:
SELinux is preventing /usr/sbin/rotatelogs from search access on the directory /etc/httpd
sealater предлагает сделать следующее
#grep rotatelogs /var/log/audit/audit.log | audit2allow -M mypol
#semodule -i mypol.pp
И это действительно решило проблему с журналом.
Итак, вот, 3 проблемы с selinux, которые я получаю каждый год или около того, когда я создаю новый сайт с apache на centos 5.x/6.x, и мне все еще нужно погуглить. Каждый раз.