Настройка Apache2.2+Nginx+eAccelerator+SVN+Trac на медленном VDS — часть первая

    Вторая часть

    Сразу хочу заметить, что статья эта не претендует на авторитетность — делал всё в первый раз на удалённой машине с Линуксом. Соответственно, прошу особо не пинать, а лучше высказывать замечания — как что-то можно было сделать по-другому, или советы по настройке. Всё нижеперечисленное было сделано по мануалам из гугла.


    Итак, досталась мне хиленькая VDS от FirstVDS — с Debian и ISPManager.
    Попытки оптимизировать ее работу вылились в следующее:

    1. Оптимизация Apache и установка Nginx
    2. Установка eAccelerator

    Ну и для души —

    3. Установка SVN
    4. Установка Trac.


    1. Апаж был уже установлен, и я думаю, что то, как его установить — нет смысла описывать — это уже прописные истины.
    Хочу уделить внимание только тому, что в Debian имеется хитрая разноска — /etc/apache2/
    • apache2.conf — это основной конфиг-файл
      envvars — окружение
      mods-available — здесь лежат указатели для всех возможных для установки модудей
      ports.conf — указатель — где и что слушать
      sites-enabled — описания существующих и включённых сайтов
      conf.d — папка для других конфигов, типа PhpMyAdmin, в ней ничего даже и не делал, только просмотрел
      httpd.conf — пустой файл для пользовательских конфигов
      mods-enabled — включённые модули, ссылки на файлы из mod-availible
      sites-available — возможные сайты (описания)


      Соответственно, посмотрев на это, я сказал системе —
      apt-get update
      apt-get install nginx


      И через несколько минут у меня был установленный и запущенный nginx.

      Следующее действие — иду в ports.conf, и там меняю
      Listen 80


      на

      Listen 127.0.0.1:8080


      — то есть переводим Апач в режим backend, грубо говоря.

      После чего надо сменить все прописанные сайты. ISPManager отчего-то не стала сайты прописывать в sites-availible и sites-enabled, а напрямую запихнула их в apache2.conf

      Ну, собственно, каркас такой —
      <VirtualHost 127.0.0.1:8080>
      ServerName site.ru
      DocumentRoot /var/www/site.ru
      SuexecUserGroup user_name group_name
      CustomLog /var/www/httpd-logs/site.ru.access.log combined
      ErrorLog /var/www/httpd-logs/site.ru.error.log
      ServerAdmin admin@site.ru
      AddDefaultCharset utf8
      php_admin_value open_basedir "/var/www/site.ru/data:."
      php_admin_value upload_tmp_dir "/var/www/site.ru/data/tmp"
      php_admin_value session.save_path "/var/www/site.ru/data/tmp"
      AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
      AddType application/x-httpd-php-source .phps



      Как-то. Меняется фактически порт и ip — на тот, который указан в Listen

      Следом мы идём в /etc/nginx/, и правим nginx.conf
      Всё основное Nginx сделал за меня при установке, мне осталось только прописать хосты

      server {
      listen my.ip.is.here:80;
      server_name site.ru;
      location / {
      proxy_pass 127.0.0.1:8080;
      proxy_redirect off;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }
      location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|html|htm)$ {
      root /var/www/site.ru;
      access_log /var/www/httpd-logs/site.ru.access.log;
      }
      }


      Сделал столько конструкций, сколько у меня сайтов — везде прописал соответствующую информацию для каждого сайта.

      Поправил в /etc/apache2/apache2.conf некоторые установки

      Timeout 5
      KeepAlive Off
      #MaxKeepAliveRequests 50
      #KeepAliveTimeout 5
      <IfModule mpm_prefork_module>
      StartServers 5
      MinSpareServers 5
      MaxSpareServers 10
      MaxClients 20
      MaxRequestsPerChild 0

      <IfModule mpm_worker_module>
      StartServers 2
      MaxClients 20
      MinSpareThreads 5
      MaxSpareThreads 10
      ThreadsPerChild 25
      MaxRequestsPerChild 0


      Ну, вроде и всё.

      Всё, мы установили Nginx фронтендом на Apache. Делаем

      /etc/init.d/apache2 restart
      /etc/init.d/nginx restart


      (reload не прокатит — именно restart)

      2. Установка eAccelerator

      Полностью следуя инструкции с HowToForge, установил без проблем. Перепишу своими словами.

      Прежде всего — контрольный выстрел

      apt-get install build-essential php5-dev


      Качаем сам eAccelerator (когда ставил — версия посвежее была, нежели на HowToForge — 9.5.3)

      cd /tmp
      wget bart.eaccelerator.net/source/0.9.5.2/eaccelerator-0.9.5.3.tar.bz2
      tar xvfj eaccelerator-0.9.5.3.tar.bz2
      cd eaccelerator-0.9.5.3
      phpize # не забудьте эту команду!!=)
      ./configure
      make
      make install


      После чего создаём и правим конфиг.

      vi /etc/php5/conf.d/eaccelerator.ini


      вставляем туда:

      extension="eaccelerator.so"
      eaccelerator.shm_size="16"
      eaccelerator.cache_dir="/var/cache/eaccelerator"
      eaccelerator.enable="1"
      eaccelerator.optimizer="1"
      eaccelerator.check_mtime="1"
      eaccelerator.debug="0"
      eaccelerator.filter=""
      eaccelerator.shm_max="0"
      eaccelerator.shm_ttl="0"
      eaccelerator.shm_prune_period="0"
      eaccelerator.shm_only="0"
      eaccelerator.compress="1"
      eaccelerator.compress_level="9"


      Сохраняем и закрываем, а потом —

      mkdir -p /var/cache/eaccelerator
      chmod 0777 /var/cache/eaccelerator


      Ну и традиционный ребут Апача

      /etc/init.d/apache2 restart


      Если всё было сделано правильно — вывод phpinfo должен выглядеть примерно так

      Не сказать, что после всех этих действий Wordpress у меня залетал аки сокол — но тормозил заметно меньше.

      Плюнул на оптимизацию, решил отложить перенос до «После отпуска», и решил для души настроить SVN+Trac — с этим возни было куда больше)

      Сегодня-завтра допишу про них)
    Поделиться публикацией

    Комментарии 19

      0
      Увы, если говорить именно про FirstVDS, то лучшей оптимизацией будет установка рекомендуемого ими же FreeBSD вместо, мною так же любимого, Debian. Проверено, работает на пол корпуса быстрее и стабильнее. Насколько я понял корни проблемы в том, что администраторы FirstVDS или не осилили или, что скорее, просто поленились настроить своп при виртуализации на базе Linux. Сам недоумевал, почему все так не очень быстро, пропарился 3 дня, порасспрашивал сервис, да и перепрыгнул на BSD... Не думаю, что там что-то изменилось за эти полгода.
        0
        Я в спешном режиме сейчас буду попросту перетаскивать только вьехавшие туда сайты на другую площадку (присматриваюсь к немецкой keyweb, на хабре кем-то воспетую), а на FirstVDS - пока не закончатся деньги - пусть скрипты разные гоняются.

        Да и для опыта настройки полезно=)
          0
          Да, у меня он тоже скорее в образовательных целях, нежели в производственных. Хотя пара проектиков там крутится и, надо заметить, на BSD не так уж и плачевно всё.
            0
            Посмотрите тогда уж
            www.aihs.net/ru/services/dedicated/
            и
            www.serverloft.com (эти, имхо, лучшие)

            а keyweb.de — гнилой сервис, пахнет шарашкой.
            0
            Давно это было, но или я чего то не понимаю, или у на firstvds что то изменилось, но по результатам тестов на сегодняшний день — дебиан работает примерно в 10 раз быстрее… Ну вот как то так. При совсем дефолтной инсталяции
              0
              Надо проверить=) Они там рассылали письма о том, что они хорошие — не проверял пока
                0
                Ну одно из двух: или изменилось, или вам не удалось своими тестами превысить выделенную вам физическую память. Самое интересное начинается, именно в этот момент.
              0
              Тоже юзал VPS от FirstVSD. Было 2 сервера: VDS отрыв и старт. Отрыв в качестве продакшн сервера и старт в качестве VPN сервера.

              Субъективно, работу ускорил перенос MySQL сервера с отрыва на старт. Но позже от такого решения отказались из-за большого трафика (приходилось платить за дополнительный трафик между двумя компами в стойке :).

              В итоге пришли к тому, что нам нужен Dedicated. Теперь всем довольны :)
              • НЛО прилетело и опубликовало эту надпись здесь
                  0
                  У меня WordPress кеширует страницы в статику, и статика отдаётся шустрее)
                  А остальные висящие сайты - чистые статики
                    0
                    >>Ставьте уже что-то одно и настраивайте правильно.
                    Что под этим подразумевается - под "правильно"?
                    • НЛО прилетело и опубликовало эту надпись здесь
                        0
                        Спасибо, поиграюсь=)
                        + в карму за дельный коментарий=)
                        • НЛО прилетело и опубликовало эту надпись здесь
                    0
                    Маленький вопрос: Акселератор ест много памяти?
                      0
                      Не замерял, если честно
                      Довольствовался итоговой нагрузкой
                      • НЛО прилетело и опубликовало эту надпись здесь
                        0
                        Спасибо, как заказывал :)
                        В мемориз обе части
                          0
                          напомню, что не гарантирую высокий профессионализм текущей настройке=)

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

                        Самое читаемое