Назад | Перейти на главную страницу

Графит не работает

В настоящее время я пытаюсь установить графит 0.9.9 на ящик Gentoo, используя эти инструкции из графитовой вики. По сути, он выходит на графит с помощью apache и mod_wsgi.

Кажется, все прошло хорошо, за исключением того, что веб-приложение apache / graphite никогда не возвращает ответ веб-браузеру (браузер постоянно ожидает загрузки страницы). Я включил отладочную информацию графита, но единственное сообщение в файлах журнала - это, которое повторяется снова и снова в info.log (с постоянным изменением pid):

Чт, 23 фев, 01:59:38 2012 :: graphite.wsgi - pid 4810 - перезагрузка поискового индекса

Эти инструкции работали для меня раньше, когда я настраивал графит на машине Ubuntu. Я подозреваю, что mod_wsgi умирает, но я подтвердил, что mod_wsgi отлично работает, когда не обслуживает графитовое веб-приложение.

Вот как выглядит мой файл vhost graphite.conf:

WSGISocketPrefix /etc/httpd/wsgi/ 

<VirtualHost *:80>
    ServerName # Server name
    DocumentRoot "/opt/graphite/webapp"
    ErrorLog /opt/graphite/storage/log/webapp/error.log
    CustomLog /opt/graphite/storage/log/webapp/access.log common

    # I've found that an equal number of processes & threads tends
    # to show the best performance for Graphite (ymmv).
    WSGIDaemonProcess graphite processes=5 threads=5 display-name='%{GROUP}' inactivity-timeout=120
    WSGIProcessGroup graphite
    WSGIApplicationGroup %{GLOBAL}
    WSGIImportScript /opt/graphite/conf/graphite.wsgi process-group=graphite application-group=%{GLOBAL}

    WSGIScriptAlias / /opt/graphite/conf/graphite.wsgi  

    Alias /content/ /opt/graphite/webapp/content/ 
    <Location "/content/"> 
            SetHandler None 
    </Location> 

    # XXX In order for the django admin site media to work you 
    # must change @DJANGO_ROOT@ to be the path to your django 
    # installation, which is probably something like: 
    # /usr/lib/python2.6/site-packages/django 
    Alias /media/ "/usr/lib64/python2.6/site-packages/django/contrib/admin/media/" 
    <Location "/media/"> 
            SetHandler None 
    </Location> 

    # The graphite.wsgi file has to be accessible by apache. It won't 
    # be visible to clients because of the DocumentRoot though. 
    <Directory /opt/graphite/conf/> 
            Order deny,allow 
            Allow from all 
    </Directory> 

</VirtualHost> 

Не решает вашу проблему, но вам не нужны:

<Location "/content/"> 
        SetHandler None 
</Location> 

<Location "/media/"> 
        SetHandler None 
</Location> 

Раньше использование SetHandler было необходимо только при использовании mod_python. Это не требуется при использовании mod_wsgi.

Я бы посоветовал вам сделать так, чтобы пользователь, выполняющий ваш код под Apache, действительно имел соответствующий доступ на запись к любым каталогам, которые необходимы для файлов данных для приложения.