Метка: apache2

  • apache выдаёт ошибку

    [crit] (28)No space left on device: mod_rewrite: could not create rewrite_log_lockCode language: Bash (bash)

    На что помогла уличная консольная магия

    ipcs -s | grep www | perl -e 'while (<STDIN>) { @a=split(/\s+/);
    print `ipcrm sem $a[1]`}'Code language: Bash (bash)

    Где www это имя пользователя от которого работает Apache
    У меня это www-data

  • Дружим nginx + ssl

    Понадобилось к одному из сайтов прикрутить ssl
    Напомню, что nginx у меня выступает как фронт-энд к Apache2
    чтоб в дальнейшем было меньше проблем, при отказе от apache2 доверим шифрование nginx

    Для этого создаём конфигурационный файл

    touch /etc/nginx/ssl.confCode language: Bash (bash)

    Добавляем в него содержимое

    # Подключение самоподписанного сертификата
    # генерация сертификата:
    # openssl req -new -x509 -days 9999 -nodes -out cert.pem -keyout cert.key
    
    ssl			on;
    ssl_protocols		SSLv3 TLSv1;
    ssl_certificate		/etc/nginx/ssl/cert.pem;
    ssl_certificate_key	/etc/nginx/ssl/cert.key;Code language: Bash (bash)

    Создадим папку где будем хранить сертификаты:

    mkdir /etc/nginx/sslCode language: Bash (bash)

    Для большей безопасности ограничиваем доступ к сертификатам:

    chown www-data:www-data /etc/nginx/ssl
    chmod 700 /etc/nginx/sslCode language: Bash (bash)

    Перейдем в эту папку и с генерируем сертификат:

    cd /etc/nginx/ssl
    openssl req -new -x509 -days 9999 -nodes -out cert.pem -keyout cert.keyCode language: Bash (bash)

    При генерации вас попросят указать некоторые данные, заполнять не обязательно но желательно.

    Теперь добавим в конфигурацию Виртального хоста в секцию server

            listen          443;       # порт https
            include	/etc/nginx/ssl.conf; # подключение конфигурации sslCode language: Bash (bash)

    Дальше для примера привожу итоговый вариант файла конфигурации.

    server {
    listen 80;
    listen 443;
    server_name domen.ru www.domen.ru;
    include /etc/nginx/ssl.conf; # подключение конфигурации ssl
    
    access_log /var/log/nginx/domen.ru/access.log;
    
    location / {
    proxy_pass http://127.0.0.1:8086/;
    proxy_redirect off;
    proxy_set_header Host $host;
    .............
    ............
    ..........Code language: Bash (bash)

    проверяем

    nginx -tCode language: Bash (bash)

    Если всё Ok то перезапускаем nginx и радуемся

  • Утечка в apache?

    Гляжу я в монитор ресурсов, и тут понимаю, что всего процессов в системе более 600!

    Процессы в системе????

    Ну и думаю огого, зачем мне столько?
    Идут торможу все демоны, а процессы то не убывают

    ps -A Code language: Bash (bash)

    Выводит 100500 процессов apache2, ну вот родной… я деаю
    /etc/init.d/apache2 stop
    Он говорит, что нет апача все остановлены уже…
    утилита killall никак не хотела мне помогать.
    пришлось более тяжёлую артерию пускать
    If the above command returns anything, do:

    sudo pkill -9 apacheCode language: Bash (bash)

    И запускаем снова..

    sudo /etc/init.d/apache2 start Code language: Bash (bash)

    После чего число процессов упало до 130

    также, я недавно обратил внимание, что на сервере слишком много открытых файлов.

    Число открытых файлов linux
    Сейчас

    # lsof | wc -l
    5379Code language: Bash (bash)

    А вот сколько было до этого, и это только апачем

     lsof | grep apache2 | wc -l
    79203Code language: Bash (bash)

    также очистился весь swap раздел, было занято 6 гигабайт, стало 79 мегабайт.

    это хорошо, очень даже. учитывая uptime системы в 480 дней…

      http://my.jetscreenshot.com/2356/20101002-mch2-12kb.jpg

    зешьuptime