У меня есть дополнительный вопрос из моего исходного вопрос об обслуживании Django, который заключался в том, как разрабатывать приложения Django и обслуживать их с того же сервера, что и мой основной сайт на основе PHP (все это часть более крупной миграции моего веб-сайта со статического и PHP-сайта). привел один к серии приложений Django).
Я не мог использовать предоставленное мне решение сервера имен и вместо этого просто развернул свои приложения Django на другом порту (8000) с помощью mod_wsgi. Однако теперь мне нужно фактически интегрировать приложение Django в основной сайт. В моем файле конфигурации Apache 2.0 (например, http://www.example.com) я добавил следующий ProxyPass команды (после моей инициализации mod_wsgi):
ProxyPass /app/newsletter http://www.example.com:8000/app/newsletter
ProxyPassReverse /app/newsletter http://www.example.com:8000/app/newsletter
Здесь я ожидаю, что любой запрос на:
http://www.example.com/app/newsletter
будет успешно проксирован на:
http://www.example.com:8000/app/newsletter
и все будет в порядке с миром.
Тем не менее, это не так. Apache зависает примерно на 5 минут (время, затраченное на создание этого вопроса), а затем выдает ошибку прокси-сервера 502:
Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /app/newsletter/.
Reason: Error reading from remote server
Просматривая мой журнал ошибок Apache 2.0 после этого ответа, я вижу постоянные ошибки, подобные следующим:
[Thu Sep 27 15:25:49 2012] [error] Exception KeyError: KeyError(****,) in <module 'threading' from '/usr/lib64/python2.6/threading.pyc'> ignored
Так что что-то кажется упущенным в том, как mod_proxy работает с Django и/или Python. У меня есть другие процессы, связанные с Java, в которых я использую ProxyPass и ProxyPassReverse, и они работают нормально. Кроме того, когда я не пытаюсь применить ProxyPass, все приложения Django работают хорошо (т.е. когда я обращаюсь к ним напрямую через порт 8000).
Любые идеи? Я не чувствую, что то, что я делаю, особенно сложно.
Заранее спасибо.