Вопросы с тегами [wsgi]

1

голосов
2

ответ
410

Просмотры

Apache 2.2, Django, use Python 3.5

Я хочу, чтобы запустить Django с Apache2.2 и питоном 3.6, после внесения изменений в wsgy.py и virtuahost еще работает питон 2.6 Apache / 2.2.34 (Unix) DAV / 2 mod_wsgi / 3,2 Python / 2.6.9 настроены - возобновление нормального операции Здесь wsgi.py импорт ОС, SYS sys.path.append ( '/ дом / приложение / MyApp / sivale') sys.path.append ( '/ дом / приложение / myvenv / Lib / python3.6 / сайт-пакеты' ) os.environ.setdefault ( "DJANGO_SETTINGS_MODULE", "myapp.settings") от django.core.wsgi импорта get_wsgi_application приложения = get_wsgi_application () А вот ServerName nuevo.sivale.mx Алиас / статический / дом / приложение / MyApp / статический Разрешить от всего заказа отрицать, позволяют разрешить из всех WSGIDaemonProcess sivale питон-путь = / дом / приложение / MyApp: / дома / приложение / myvenv / Библиотека / python3.6 / сайт-пакеты WSGIProcessGroup sivale WSGIScriptAlias ​​/ /home/app/myapp/myapp/wsgi.py WSGISocketPrefix / вар / запустить / WSGI
Arturo Alm
1

голосов
0

ответ
333

Просмотры

Джанго в хостинге / Cpanel .htaccess: Invalid ошибка команды

Эй, ребята, у меня есть проблема с моим Джанго приложением, так что я должен делать? Я делилась хостингом счета, на котором я пытаюсь загрузить мое Джанго приложения, это код файла .htaccess НЕ СНИМАТЬ. CloudLinux ПАССАЖИРА КОНФИГУРАЦИИ НАЧАТЬ PassengerAppRoot "/ дом / dasawork / магазин" PassengerBaseURI "/ тест" PassengerPython "/home/dasawork/virtualenv/store/3.5/bin/python3.5" НЕ СНИМАТЬ. CloudLinux ПАССАЖИРА КОНФИГУРАЦИИ END он работал в ночное время, когда я первый создал мой питон приложение в CPanel, а затем утром он не работает и дает ошибку «/home/dasawork/public_html/test/.htaccess: Недопустимая команда„PassengerAppRoot“ , возможно, опечатка или определяется модуль не входит в конфигурацию сервера». мой хостинг-провайдеры изменили свое корневое имя реж! например, когда он работал именно «»
Asad
1

голосов
1

ответ
1.2k

Просмотры

Import Error: No module named sqlalchemy

I set up a Apache2/WSGI/Flask app based on the following tutorial: https://amunategui.github.io/idea-to-pitch/#installing-flask. I worked like a charm but when I tweaked it and changed the python file in order to connect to SQL, I can find in the logs at /var/log/apache2/error.log: File "/var/www/FlaskApps/FlaskApps.wsgi", line 8, in from project import app as application File "/var/www/FlaskApps/FirstApp/project.py", line 2, in from sqlalchemy import create_engine ImportError: No module named sqlalchemy However, I am able to run scripts that import sqlalchemy from the command line with python. And I don't have virtual envs etc (I just followed the basic installation from the link above). So WSGI is able to import flask on line 1, but not sqlalchemy on line 2... Any idea how to fix this? Thanks! See the files: /etc/apache2/sites-available/FirstApp.conf ServerName ...my_public_domain... ServerAdmin [email protected] WSGIScriptAlias / /var/www/FlaskApps/FlaskApps.wsgi Order allow,deny Allow from all Order allow,deny Allow from all ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined /var/www/FlaskApps/FlaskApps.wsgi #! /usr/bin/python import sys import logging logging.basicConfig(stream=sys.stderr) sys.path.insert(0,"/var/www/FlaskApps/FirstApp/") # home points to the project.py file from project import app as application application.secret_key = "somesecretsessionkey" /var/www/FlaskApps/FirstApp/project.py from flask import Flask, render_template, request, redirect, url_for, flash, jsonify from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from database_setup import Restaurant, Base, MenuItem engine = create_engine("mysql+mysqldb://root:[email protected]/dbname") Base.metadata.bind = engine DBSession = sessionmaker(bind=engine) session = DBSession() app = Flask(__name__) @app.route('/') def project(): return "This is from Flask!!!" ...
CorneeldH
1

голосов
1

ответ
261

Просмотры

mod_wsgi перезапускается колба приложение [дубликат]

Этот вопрос уже есть ответ здесь: Почему бы не генерировать секретный ключ каждый раз, когда колба начинается? 1 ответ Из документации КОЛБЫ, я бы следующий в моей конфигурации: ServerName example.com WSGIDaemonProcess yourapplication пользователь = user1 группа = GROUP1 нить = 5 WSGIScriptAlias ​​/ /var/www/yourapplication/yourapplication.wsgi WSGIProcessGroup yourapplication WSGIApplicationGroup% {GLOBAL} Заказать отрицаю , позволяют Разрешить из всех В моем файле .wsgi, импортировать соответствующий файл питона и импортировать приложение склянки в качестве приложения. Все работает отлично, но я добавил вход в этот файл, потому что я заподозрил что-то не так. По-видимому, этот файл WSGI вызывается каждый так часто, когда браузер делает соединение. Он перезапускает приложение (или, по крайней мере, новый процесс). Я никогда не замечал этого, и я не вижу это как проблему, пока не импортирован склянки-логин для управления проверкой подлинности сеансов. Теперь всякий раз, когда я войти в систему, через какое-то короткое время, приложение WSGI не перезагружается и история сессии больше не существует. В сущности, я должен войти в каждые несколько секунд. Это предполагаемый способ mod_wsgi работает? Я проверил мою колбу приложение работает в автономном режиме (собственный сервер развейте колбу), и она работает безупречно. В некотором смысле это дубликат, но это тоже не так. Серверный код не глючит. Это просто mod_wsgi перезапускает приложение снова и снова. Спасибо за ссылки на другую должность, хотя! В сущности, я должен войти в каждые несколько секунд. Это предполагаемый способ mod_wsgi работает? Я проверил мою колбу приложение работает в автономном режиме (собственный сервер развейте колбу), и она работает безупречно. В некотором смысле это дубликат, но это тоже не так. Серверный код не глючит. Это просто mod_wsgi перезапускает приложение снова и снова. Спасибо за ссылки на другую должность, хотя! В сущности, я должен войти в каждые несколько секунд. Это предполагаемый способ mod_wsgi работает? Я проверил мою колбу приложение работает в автономном режиме (собственный сервер развейте колбу), и она работает безупречно. В некотором смысле это дубликат, но это тоже не так. Серверный код не глючит. Это просто mod_wsgi перезапускает приложение снова и снова. Спасибо за ссылки на другую должность, хотя!
Jimmy
1

голосов
1

ответ
36

Просмотры

Heruko Django приложение error- Сайт не будучи загружен

Эй, ребята, я создал свой первый сайт Джанго! и я хочу, чтобы загрузить его через Heroku, я последовал за все, что они сказали мне, и я все еще получаю ошибку приложения, когда я пытаюсь сделать heruko открыть я получаю сообщение об ошибке приложения и, как я новичок в heruko я расстроен, чтобы получить ошибки ! Я обнаружил, что я получаю ошибку здесь, пока я сделать GIT мастер толчок heruko я получаю все готово, но небольшая ошибка после развертывания делается и ошибка: Counting объектов: 30, сделано. Сжатие Дельта с использованием до 2 потоков. Сжимая объекты: 100% (30/30), сделано. Пишущие объекты: 100% (30/30), 13,62 KiB | 422.00 KiB / s, сделано. Всего 30 (дельта 2), повторно 0 (дельта 0) удаленный: Сжимая исходные файлы ... сделано. удаленное: источник здания: удаленный: удаленный: -----> Python приложение обнаружено удаленным: -----> Установка пипа отдаленного: -----> Установка требования с пип пульта дистанционного управления: Пульт дистанционного управления: -----> $ питон manage.py collectstatic --noinput удаленный: 118 статические файлы, скопированные '/ TMP / build_d2ad5fb0675c6c8305a3ad0fb5 819fe4 / статический', 131 пост-обработки. удаленный: удаленный: -----> Открывать типы процессов дистанционного: PROCFILE объявляет типы -> (нет) удаленный: удаленный: -----> Сжимая ... удаленный: Готово: 54.3M удаленный: ----- > Запуск ... удаленный: Выпущенный v9 удаленный: https://kiran-portfolio.herokuapp.com/ развернуты на Heroku дистанционного управления: пульт дистанционного управления: Проверка развертывания ... сделано. Для https://git.heroku.com/kiran-portfolio.git dd0eec5..f9d7b19 мастер -> мастер ошибка: update_ref Сбой исх «ссылки / пультов ДУ / Heroku / мастер»: не может заблокировать исх 'ссылки / пультов ДУ / Heroku / мастер «: не удалось разрешить ссылку» ссылки / пультов ДУ / Heroku / м Ster ": ссылка сломана Я также думаю, что ошибка с PROCFILE, потому что я не знаю, что имя, которое мы должны ввести в wsgi.py, как указано ниже: сети: guincorn whatnameshouldiwrite.wsgi Я обнаружил, что мы должны написать свое имя приложения, но у меня есть два приложения в моем проекте и у меня есть другое имя для моего сайта Heroku и другого имени для моего проекта на моем компьютере так, имя которого я должен писать там? Бревна Heroku выглядит следующим образом: 2018-04-10T08: 14: 54.924974 + 00: 00 приложений [API]: Включение Logplex пользователем smschavan143 @ г mail.com 2018-04-10T08: 14: 54,924974 + 00: 00 приложения [API ]: v2 релиз, созданный пользователем smschavan1 [email protected] 2018-04-10T08: 14: 54,816584 + 00: 00 приложение [API]: v1 релиз, созданный пользователем smschavan1 [email protected] 2018-04-10T08: 14: 54.816584 + 00: 00 приложение [API]: Первый релиз пользователем smschavan143 @ gmail.com 2018-04-10T08: 15: 27.492135 + 00:
Kiran45
1

голосов
1

ответ
17

Просмотры

mod_wsgi-экспресс останавливается, если терминал изменен

Если mod_wsgi-экспресс Python начинается в терминале, который затем с измененным размером, сервер выключается. Это, видимо, связано с Apache интерпретации SIG_WINCH. Может ли это быть отключена в любом случае? Наивный способ поймать его с помощью signal.signal (signal.SIGWINCH, signal.SIG_IGN) блокируются: http://modwsgi.readthedocs.io/en/develop/configuration-directives/WSGIRestrictSignal.html. Можно ли как-то игнорировать этот сигнал, либо в коде или в командной строке mod_wsgi-экспресс?
M K
1

голосов
2

ответ
105

Просмотры

Python Bottle приложение в / App1 - я вынужден предварять «/ APP1» на все маршруты?

Я разработал приложение бутылки локально, используя бег () с маршрутами, которые начинаются с «/» в учебнике, и теперь я хочу, чтобы поставить его на реальном сервере. Документы на http://bottlepy.org/docs/dev/deployment.html предлагают использовать WSGIScriptAlias ​​/ /var/www/yourapp/app.wsgi, но я не хочу, корень моего сайта должны быть обработаны с помощью WSGI приложение. Я хочу, чтобы корень сайта будет обрабатываться сырым Apache, и только URL-под / App1 быть обработаны WSGI. Так что я установить мину в качестве WSGIScriptAlias ​​/ app1 /var/www/app1/app1.py. Она работает в том смысле, что я могу видеть, что я определил в .py файл под маршрут ( «/»), когда я просматриваю к серверу: // App1, но ни один из гиперссылок не / app1 предваряется и браузер не может выбрать мои CSS файлы из / вар / WWW / app1 / CSS и т.д. Тема говорит все это. Могу ли я вынужден предварять «/ APP1» для всех маршрутов, когда я хочу, чтобы приложение, чтобы жить в подкаталоге? Я пытался в будущем доказательство себя, потому что я предвижу делать / app2, / app3 и т.д. в будущем. EDIT 1: Ради эксперимента, я стараюсь предваряя / APP1 по всем маршрутам. Результат был еще хуже: каждый адрес я стараюсь, чтобы перейти к ниже / app1 дает ошибку 404.
amonroejj
1

голосов
0

ответ
183

Просмотры

Target WSGI script cannot be loaded as python module and compiles with python 2.7 instead of python version in venv

Wsgi cannot compile the application with the python version in the venv instead always compiles with python 2.7. Here are my files please help i am trying to deploy flask application , centos 7 using Apache 2.4.6 and mod-wsgi . Target WSGI script '/home/nmapi/project/dir/app.wsgi' cannot be loaded as Python module is the error here is my app.wsgi activate_this = '/home/nmapi/venv/bin/activate_this.py' with open(activate_this) as file_: exec(file_.read(), dict(__file__=activate_this)) Expand Python classes path with your app's path from werkzeug.wsgi import DispatcherMiddleware import sys import logging print(sys.path) logging.basicConfig(stream=sys.stderr) sys.path.insert(0,"home/nmapi/project/dir") from run import * My virtual host config is WSGISocketPrefix /var/run/wsgi #ServerName sample.server.com WSGIApplicationGroup %{GLOBAL} WSGIDaemonProcess score threads=5 python-home=/home/nmapi:home/nmapi/deps/venv/lib/python3.5 WSGIScriptAlias /test_wsgi /home/nmapi/project/dir/datascience.wsgi #WSGIProcessGroup score #AllowOverride All Require all granted #Allow from all Alias /static /home/nmapi/project/dir/static WSGIProcessGroup score #WSGIApplicationGroup %{GLOBAL} #AllowOverride All Require all granted #Allow from all ErrorLog logs/error.log #ErrorLog /tmp/error.log LogLevel debug #CustomLog /tmp/access.log combined CustomLog logs/access.log combined
ranjith d
1

голосов
0

ответ
83

Просмотры

Apache - случайное отключение электричества

Недавно я встретил новые проблемы с Apache. У нас есть приложение, написанное на Python (3.5) в термосе (1.0.2) работает на $ lsb_release -a Нет LSB модули не доступны. Дистрибьютор ID: Ubuntu Описание: Ubuntu 16.04.2 LTS Release: 16,04 Codename: У нас есть дружественный два сервера за УДР (AWS Elasict Loadbalancer), и они вдруг (работает на той конфигурации, за последние 3 месяца) начал неудачу. Я обнаружил, что с помощью сигналов тревоги от УДР и внешним инструментом для мониторинга. Мы вдруг начали получать E408 (тайм-аут) и E503 (Service Unavailable). Я начал копать, чтобы увидеть, что может быть причиной, в журналах апача я нашел много messsages (кажется, как раз перед неудачей), как это: [пн 25 июня 22: 27: 04,613967 2018] [WSGI: ошибка] [ PID 1275: TID 139684390848256] (70008) Частичные результаты справедливы, но обработка является неполным: [клиент 1.2.3.4: 2819] mod_wsgi (PID = 1275):. Не удалось получить ведро бригада по запросу, реферер: https: //xx.xx.xx/ Я также опрошена системный журнал и увидел это: 25 июня 22:13:25 my_hostname Systemd [1 ]: Созданный кусочек срез пользователя Убунту. 25 июня 22:13:25 my_hostname Systemd [1]: Запуск диспетчера пользователей для UID 1000 ... 25 июня 22:13:25 my_hostname Systemd [1]: Начало сеанса 1424 пользователя убунту. 25 июня 22:13:25 my_hostname Systemd [6239]: Достигнута целевые Sockets. 25 июня 22:13:25 my_hostname Systemd [6239]: Достигнута целевые Таймеры. 25 июнь 22:13:25 my_hostname Systemd [6239]: Достигнут целевые пути. 25 июня 22:13:25 my_hostname Systemd [6239]: Достигнута цель основной системы. 25 июня 22:13:25 my_hostname Systemd [6239]: Достигнута цель по умолчанию. 25 июня 22:13:25 my_hostname Systemd [6239]: Запуск завершен в 8ms. 25 июня 22:13:25 my_hostname Systemd [1]: Started Диспетчер пользователей для UID 1000. 25 июня 22: 14:47 my_hostname Systemd [1]: Остановка LSB: веб-сервер Apache2 ... 25 июня 22:14:47 my_hostname apache2 [6624]: * Остановка веб-сервера Apache HTTPD apache2 25 июня 22:14:59 my_hostname apache2 [6624] * 25 июня 22:14:59 my_hostname Systemd [1]: Остановился LSB: веб-сервер Apache2. 25 июня 22:14:59 my_hostname Systemd [1]: Запуск LSB: веб-сервер Apache2 ... Jun 25 22:14:59 my_hostname apache2 [6660]: * Запуск Apache HTTPD веб-сервер apache2 Jun 25 22:14:59 my_hostname apache2 [6660]: AH00557: apache2: apr_sockaddr_info_get () не для my_hostname Jun 25 22:14:59 my_hostname apache2 [6660]: AH00558: apache2: не удалось достоверно определить полное доменное имя сервера, с помощью 127.0.0.1. Установите директиву 'ServerName' глобально, чтобы подавить это сообщение Jun 25 22:15:00 my_hostname apache2 [6660]: * 25 июня 22:15:00 my_hostname Systemd [1]: Начало LSB: веб-сервер Apache2. Ее интересно, что оба сервера (почти идентичные) не удались в то же время (они были возобновлены примерно то же самое время из-за развертывание новой версии и трафика может быть примерно таким же, как для, так как они находятся за одной балансировки нагрузки). Уже пытались найти проблему предложения этого типа, но не везло до сих пор. Еще одна интересная вещь, я нашел несколько сообщений, как это одно в журнале: [Mon Jun 25 22: 27: 04,657763 2018] [WSGI: ошибка] [PID 1274: TID 139684507617024] [дистанционный 172.31.12.149:720] mod_wsgi ( PID = +1274): Исключение произошло обработка WSGI сценария '/home/ubuntu/my_app/app.wsgi'. [Вт Июл 25 22: 27: 04,658503 2018] [WSGI: ошибка] [PID 1274: TID 139684482414336] [удаленный 172.31.12.149:62417] mod_wsgi (PID = 1274): Исключение произошло обработки WSGI сценарий «/ главная / убунту / my_app /app.wsgi. [Пн 25 июня 22:27:04. 658528 2018] [WSGI: ошибка] [PID 1274: TID 139684532819712] [удаленный 172.31.12.149:52139] mod_wsgi (PID = 1274): Исключение произошло обработка WSGI сценария '/home/ubuntu/my_app/app.wsgi'. [Вт Июл 25 22: 27: 04,658584 2018] [WSGI: ошибка] [PID 1274: TID 139684482414336] [удаленный 172.31.12.149:62417] OSError: не удалось записать данные [MON 25 июня 22: 27: 04,658818 2018] [WSGI : ошибка] [PID 1274: TID 139684516017920] [удаленный 172.31.12.149:208] OSError: не удалось записать данные [MON 25 июня 22: 27: 04,659999 2018] [WSGI: ошибка] [PID 1274: TID 139684532819712] [дистанционное 172,31 .12.149: 52139] OSError: не удалось записать данные [пн 25 июня 22: 27: 04,660411 2018] [WSGI: ошибка] [PID 1274: TID 139684507617024] [удаленный 172.31.12.149:720] OSError: не удалось записать данные не уверен, если это может быть связано или нет, но я знаю, что мы отменяем много запроса, прежде чем они будут завершены (по причине). Также мы проводим на Ubuntu + Колба (и более вероятно, так же установка) в течение многих лет, и мы никогда не было проблемой, как это. Действительно ценим любую идею, спасибо!
Michal Hatak
1

голосов
1

ответ
95

Просмотры

Как правильно обслуживать КОЛБУ приложение на Ubuntu с помощью Apache 2 и mod_wsgi? 404 Не найдена ошибка

Моя Колба App отлично работает на локальном шлейфом с сервером Колба, но теперь я пытаюсь получить apache2 служить приложение на моей частной 192.168.0.0/24 сети (IP моего сервера является 192.168.0.18). EDIT3: Я следовал за большинство предложений г Dumpleton с исключением перемещения .wsgi из корневого каталога документов (я планирую сделать это после того, как все работает должным образом). Я могу получить Hellow мира скрипт для запуска. Любая машина на моей частной локальной сети можно увидеть с помощью частного IP моего сервера. Однако, когда на самом деле пытается получить мой сайт для запуска, 404 возвращается. Там нет ошибок в /var/log/apache2/error.log. Я подозреваю, что проблема в моем flaskapp.wsgi сценарии. Кажется, совсем по-другому, чем используемый для простого «привет мир» страницы. Какие-либо предложения? Спасибо переполнение стека корень @ сервер: / вар / WWW / flaskapp # кошка / и т.д. / хосты 127.0.0.
1

голосов
0

ответ
46

Просмотры

Могу ли я запустить WSGI сервер с gunicorn без питона фреймворков в условиях ограниченных ресурсов?

Я знаю, что это немного нелепо спрашивать, но я могу не использовать веб-рамку, как - Колба, Falcon, и т.д., и запустить обнаженный минимальный сервер WSGI в среде Nginx. Я пытаюсь запустить мой процесс WSGI в напряженных и высоко ограниченных ресурсах - что-то вроде Raspberry Pi. Я не буду требовать, чтобы обрабатывать большую часть нагрузки клиента. Количество клиентов будет 1 или 2 при макс. Не более 10 запросов в секунду. Так просто интересно, если я могу нокаутировать каждый компонент возможной записи некоторого Python кода сам. Я искал какую-либо документацию по этому вопросу, но не мог получить много информации. Любые указатели или предложения служить пользовательским питоном веб-приложения без полноценной базы приветствуется. Последнее средство было бы понять соколы исходного кода и написать минимальный код API сам, который я уже начал.
Dev T J
1

голосов
2

ответ
650

Просмотры

Настройка шаблона для входа в странице для Authkit с Пилонами?

Я новичок в обоих Пилоны и AuthKit. У меня есть базовая аутентификация через AuthKit работает в моем приложении, но я не знаю, как настроить шаблон страницы входа. Один в комплекте с AuthKit очень общий характер. Я нашел Pylons: Mako шаблонов в AuthKit, но я думал, что может быть решением более уточненным.
amrox
1

голосов
2

ответ
599

Просмотры

System architecture: simple approach for setting up background tasks behind a web application — will it work?

У меня есть веб-приложение, Django, и у меня есть некоторые задачи, которые должны работать (или на самом деле: быть инициированы) на заднем плане. Приложение развертывается следующим образом: apache2-MPM-работника; mod_wsgi в режиме демона (1 процесс, 15 нитей). Фоновые задачи имеют следующие характеристики: они должны работать в обычном интервале (каждые 5 минут или около того); они требуют контекста приложения (то есть пакеты прикладных программ должны быть доступны в памяти); они не нуждаются в каких-либо другие входах, кроме доступа к базе данных, для того, чтобы выполнить некоторые не очень тяжелые задачи, такие как отправка электронной почты и обновление состояния базы данных. Теперь я думаю, что самый простой подход к этой проблеме было бы просто контрейлерных на существующем процессе применения (как порождены mod_wsgi). При реализации этой задачи в рамках приложения и предоставления интерфейса HTTP для него, я бы предотвратить накладные расходы другого процесса, который держит все приложения в память. Простой cronjob может быть установка, которая отправляет запрос к этому HTTP-интерфейс через каждые 5 минут, и это было бы его. Поскольку процесс приложения обеспечивает 15 потоков и задачи достаточно легкие и только работают через каждые 5 минут, я полагаю, что они не будут препятствовать производительности операций пользователя, веб-приложения. Тем не менее ... Я сделал некоторые исследования в интерактивном режиме, и я не видел никого, защищая этот подход. Многие статьи предлагают значительно более сложный подход, основанный на полномасштабный компоненте обмена сообщений (например, сельдерей, который использует RabbitMQ). Несмотря на то, что это сексуально, это звучит как излишние для меня. Некоторые статьи предполагают создание cronjob, который выполняет скрипт, который выполняет задачу. Но это не чувствует себя очень привлекательной либо, поскольку это приводит к созданию нового процесса, который загружает все приложения в память, выполняют некоторые крошечные задачи, и снова уничтожает процесс. И это повторяется через каждые 5 минут. Не похоже, элегантное решение. Итак, я ищу какую-то обратную связь на моем предложенном подходе, как описан в пункте перед предшествующим пунктом. Является ли мое рассуждение верно? Могу ли я с видом (потенциальных) проблем? Как насчет моего предположения, что производительность приложения не будут препятствовать? и разрушает процесс снова. И это повторяется через каждые 5 минут. Не похоже, элегантное решение. Итак, я ищу какую-то обратную связь на моем предложенном подходе, как описан в пункте перед предшествующим пунктом. Является ли мое рассуждение верно? Могу ли я с видом (потенциальных) проблем? Как насчет моего предположения, что производительность приложения не будут препятствовать? и разрушает процесс снова. И это повторяется через каждые 5 минут. Не похоже, элегантное решение. Итак, я ищу какую-то обратную связь на моем предложенном подходе, как описан в пункте перед предшествующим пунктом. Является ли мое рассуждение верно? Могу ли я с видом (потенциальных) проблем? Как насчет моего предположения, что производительность приложения не будут препятствовать?
Tim Molendijk
1

голосов
1

ответ
814

Просмотры

site.addsitedir не в полной мере обработки .pth файла

Это стек апач / mod_wsgi / virtualenv / Джанго. В директории virtualenv сайт-пакетов У меня есть virtualenv_path_extensions.pth файл. Апач конф имеет WSGIScriptAlias ​​/ /path/to/my.wsgi my.wsgi имеет site.addsitedir ( «/ путь / к / virtualenv / сайт-пакеты») Теперь, если я запустить питон оболочку, импорт сайт, и вызовите строку выше, мой sys.path выглядит правильно: она загрузила все пути в virtualenv_path_extensions.pth Однако под апачом я получаю 500 ошибок, потому что он утверждает, что Джанго не по пути. Когда я вхожу sys.path после addsitedir линии в my.wsgi, это выглядит, как если бы он добавил первую строку virtualenv_path_extensions.pth, но не все остальное! Что может вызвать такое?
EMiller
1

голосов
1

ответ
1.4k

Просмотры

Django сессии не работают

я пытаюсь найти ошибку за несколько часов в настоящее время, но ничего не выходит. Django дает мне сообщение об ошибке, когда я пытаюсь получить доступ к request.session из поля зрения. Никакие другие ошибки. объект «WSGIRequest» не имеет атрибута «SESSION» Вот мои настройки Django, что указывает на сессии и аутентификации. Большинство из них установлены по умолчанию. AUTHENTICATION_BACKENDS = ( 'django.contrib.auth.backends.ModelBackend',) AUTH_PROFILE_MODULE = '' alkimikis.users.models.UserProfile INSTALLED_APPS = [ 'django.contrib.contenttypes', 'django.contrib.sessions', «django.contrib .auth ' 'django.contrib.admin', 'alkimikis.users'] MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware',' Джанго. ') SESSION_ENGINE = „contrib.auth.middleware.AuthenticationMiddleware Идеи django.contrib.sessions.backends.db“ для решения или более глубокой отладки? Кто-нибудь?
Anpher
1

голосов
1

ответ
270

Просмотры

мод user_dir и WSGI

Я пытаюсь настроить папку public_html / django_app, где все URLs как ~ / {имя пользователя} / Джанго будет выполнять файл .wsgi, расположенный там. Идея заключается в том, чтобы оформить наш проект внутри папок Джанго, и он работает для все без дальнейшей апачи конфигурации. Сейчас наш проект работает в / вар / WWW / PROJECT_NAME, но я хотел бы каждый пользователь, чтобы иметь возможность оформить проект в своей собственной папке / дома / {имя пользователя} / public_html / django_app, и я не хочу их для редактирования любого апачский конфигурации. Так что я думаю, вопрос в том, что это лучший способ / место, чтобы сделать это в конфигурации Apache. Я хотел бы избежать, создавая VirtualHosts для всех, просто изменить WSGIScriptAlias ​​django_app / /home/{username}/django_app/core.wsgi Спасибо.
Martin
1

голосов
1

ответ
921

Просмотры

Сегментация Диагностика (11) на HTTPD, когда Python-LDAP инициализируется

Я использую mod_wsgi для приложения Django (OSQA) на RHEL 5 с Python 2.43 (не обновление). Я сайт создан и работает нормально, а затем попытался интегрировать аутентификацию с питона-LDAP для доступа атрибутов Active Directory, например пользователя имя, адрес электронной почты и т.д. Apache HTTPd врезается со следующим сообщением: [информация] ребенок Pid 18705 выход неисправность сигнала Сегментация (11) Я изначально думал, что это было связано с inconsisten эмигранта библиотеки между Apache и Python, но я с тех пор обновлен модуль libexpat.so, чтобы соответствовать версии Python из pyexpat (1.95.8). От тяжелых лесозаготовок в журнале Джанго, я могу видеть неисправность сегментной происходит, когда эта линия выполнена: кон = ldap.initialize (AD_LDAP_URL) Есть ли что-то конкретное с питона-LDAP вызывает эту проблему? Любые другие мысли о том, как отлаживать? Спасибо
Alex
1

голосов
1

ответ
933

Просмотры

Invalid администратора Логин и выход из системы URLs, когда Джанго-КМВ приложение не устанавливается на корню

Я использую ModWsgi для развертывания моего приложения. У меня есть WSGIScriptAlias, который указывает на мой проект СЦИ. WSGIScriptAlias ​​/ cmsapp «/home/hari/dev/cmsproj/apache/django.wsgi» У меня также есть USE_I18N значение ИСТИНА в моих настройках, и я использую следующее промежуточное программное обеспечение Джанго-CMS. Я могу получить доступ к странице входа администратора через HTTP: // локальный / cmsapp / администратор /. После того, как я представить мои документы, я получаю 404, как HTTP: // локальная / а / администратор / страница будет достигнута. В идеале я должен посетить HTTP: // локального / cmsapp / а / администратор / - пытаюсь посетить этот URL вручную берет меня к панели администратора. Точно так же, когда я пытаюсь выйти из панели администратора, я попадаю на HTTP: // локальной / а / cmsapp / админ / выход из системы /. Если удалить «ан», я успешно вышел. Это действительно странно. Я чувствую, что для этих URL-адресов, он добавляет код языка после доменного имени, вместо добавления его в фактическом корне. другие относительные URL-адрес, такие как HTTP: // локального / cmsapp / о / админ / CMS / страницы / и HTTP: // локальная / cmsapp / о / администратор / авториз / пользователь / работа отлично. Какие-либо предложения? Есть ли какие-либо настройки я пропавшими без вести?
Hari
1

голосов
1

ответ
1.1k

Просмотры

Error loading MySQLdb module in MACOSX10.6 (Apache & mod_wsgi) [duplicate]

яично-TMP / _mysql.so, 2): Библиотека не загружен: libmysqlclient.18.dylib [Пт 1 апреля 11:00:11 2011] [ошибка] [клиент :: 1] Реферировано от: /Users/LechterLin/.python -eggs / MySQL_python-1.2.3-py2.7-MacOSX-10,6-intel.egg-TMP / _mysql.so [пт 1 апреля 11:00:11 2011] [ошибка] [клиент :: 1] Причина: изображение не нашел файл WSGI в Джанго проекта и httpd.conf в апача правильны, потому что я использую тот же файл (или команда) в WindowsXP проект может успешно работать. Этот отчет аналогичен с ошибкой я только установить Python и MySQL без MySQL-питон адаптера. Так что эти две ошибки имеют какое-то отношение? Я искал эту ошибку через Google, кажется, эта проблема может быть найдена только в MACOSX10.6. вопросы Мои системы, как следующие: Os: MACOSX10.6.7 снежный барс MySQL: 5.5.10 питон: 2,7 MySQL-питон адаптер: 1.2.3 Apache: 2.2.17 mod_wsgi: 3,3 Джанго: 1. 3 Надежда, чтобы получить вашу помощь! Спасибо большое!
Lechter LIN
1

голосов
1

ответ
383

Просмотры

Многопроцессном с WSGI

Я разрабатываю приложение с апача и WSGI. Структура моего приложения, как это: Клиент -> Веб-сервер -> Диспетчер (получить запрос HTTP от сервера) -> Рабочий (процесс запроса) -> Раковина (ответ на веб-сервер) -> Веб-сервер -> Client в принципе, есть 3 процесса (диспетчер, рабочие и раковина) Я застрял на пересылку запроса HTTP / ответ между этими 3 процессами. Есть ли способ сделать это в Python (как RequestDispatcher в Java Servlet)?
Harue
1

голосов
1

ответ
136

Просмотры

Как имитировать префикс mod_wsgi в Джанго тестах?

Я использую mod_wsgi с префиксом URL. моя установка: Alias ​​/ Приставка /path_to_wsgi_file/file.wsgi Опция ExecCGI SetHandler WSGI-скрипт ... Я хотел бы мои Джанго тестов, чтобы имитировать эту ситуацию, чтобы я мог избежать различий между тестированием и реальным окр. Это означает, что я хочу request.get_full_path (), чтобы содержать / префикс Любой способ сделать это? EDIT: после прохождения через источник, чтобы понять, что FORCE_SCRIPT_NAME делает, выглядит как он используется, когда wsgi.py называет set_script_prefix () из urlresolvers. Моя проблема заключается в том, что это не вызывается, когда я бегу «manage.py тест». Я думаю, я мог бы назвать этот метод себя в тесте. Все лучшие предложения?
davidbrai
1

голосов
1

ответ
2.8k

Просмотры

error: [Errno 104] Connection reset by peer - dev server IE 9

Когда я тестирую свои приложения с помощью Django 1.2 и 1.3 сервер Дев на IE 9. Каждые другие запросы дает мне: Traceback (самый последний вызов последнего): Файл «/home/dmican/Envs/monetization/lib/python2.6/site- пакеты / Джанго / ядро ​​/ серверы / basehttp.py "строка 281, в стоках self.finish_response () Файл" /home/dmican/Envs/monetization/lib/python2.6/site-packages/ Джанго / ядро ​​/ серверы / basehttp.py», строка 321, в finish_response self.write (данные) Файл "/home/dmican/Envs/monetization/lib/python2.6/site-packages/ Джанго / ядро ​​/ сервера / basehttp.py", строка 400 , в self.send_headers записи () Файл "/home/dmican/Envs/monetization/lib/python2.6/site-packages/ DJANGO / ядро ​​/ серверов / basehttp.py", строка 464, в send_headers self.send_preamble () Файл «/ главная / dmican / Envs / монетизация / Библиотека / python2.6 / сайт-пакеты / Джанго / ядро ​​/ серверы / basehttp.py», строка 379, в send_preamble self._write ( 'HTTP /% s% s \ г \ п' % (self.http_version, self.status)) файла "/home/dmican/Envs/monetization/lib/python2.6/site-packages/ Джанго / ядро ​​/ сервера / basehttp.py", строка 508, в _write self.stdout.write (данных) Файл «/ USR / Библиотека /python2.6/socket.py», строка 297, в записи self.flush () Файл "/usr/lib/python2.6/socket.py", строка 284, заподлицо self._sock.sendall (буфер) ошибки : [Errno 104] Подключение сброса пэр в основном я получаю эту ошибку только тогда, когда я тестирование с IE9 Любых решений Спасибо заранее?6 / сайт-пакеты / Джанго / ядро ​​/ серверы / basehttp.py», строка 508, в _write self.stdout.write (данные) Файл "/usr/lib/python2.6/socket.py", строка 297, в написать self.flush () Файл «/usr/lib/python2.6/socket.py», строка 284, в промывочной self._sock.sendall (буфер) ошибки: [Errno 104] сброс подключения пэром в основном я получаю эта ошибка только тогда, когда я проверяю с IE9 Любые решения? Спасибо заранее6 / сайт-пакеты / Джанго / ядро ​​/ серверы / basehttp.py», строка 508, в _write self.stdout.write (данные) Файл "/usr/lib/python2.6/socket.py", строка 297, в написать self.flush () Файл «/usr/lib/python2.6/socket.py», строка 284, в промывочной self._sock.sendall (буфер) ошибки: [Errno 104] сброс подключения пэром в основном я получаю эта ошибка только тогда, когда я проверяю с IE9 Любые решения? Спасибо заранее
Asif
1

голосов
1

ответ
1.7k

Просмотры

Django virtualenv, pythonpath issues

Я пытаюсь развернуть приложение Django с virtualenv, но я не опытным пользователем Linux. Это на общем хозяине. Если я типа питона я получил питона 2.4 консоли. Если типа python2.7 я получил консоль 2.7. Я хочу использовать 2.7. Я установил virtualenv с Setuptools в моих личных .Выходных-пакетах. Я создал окр с помощью Python 2.7: .Выходные-пакеты / virtualenv --no-пакетов участка -p python2.7 ENV Я активировал мой окр и установки пакетов мне нужно. Я настроил (пытался) мой .wsgi использовать окр я был 2 дня в шаге 4. Сервер имеет несколько предварительно установленных модулей, которые находятся на sys.path. Например, он установил Джанго, но я хочу, чтобы использовать модуль, установленный в моей virtualenv. Я прочитал несколько документов WSGI, и я пришел к этому: импорт SYS, ОС, сайт sys.stdout = sys.stderr os.environ [ 'PYTHON_EGG_CACHE'] = ' Os.environ /home/bruddennautica/apps_wsgi/.python-eggs [ 'DJANGO_SETTINGS_MODULE'] = "brudden.settings" sys.path.append ( '/ дом / bruddennautica / apps_wsgi') sys.path.append ( '/ дом /bruddennautica/apps_wsgi/env/lib/python2.7/site-packages') activate_this = '/home/bruddennautica/apps_wsgi/env/bin/activate_this.py' ExecFile (activate_this, ДИКТ (__ __ файл = activate_this)) импорт Джанго. core.handlers.wsgi применение = django.core.handlers.wsgi.WSGIHandler () С помощью этой конф я получил ошибку Джанго, который показывает мне некоторые вещи. Ошибка Джанго не важно, что это вызвано тем, что версия Джанго не равна той, я установил в моей virtualenv, версия питона либо. PRINT: http://dl.dropbox.com/u/9290581/error.png Это можно увидеть записи пути питона, большинство из них не из virtualenv. Первый: /home/bruddennautica/apps_wsgi/env/lib/python2.4/site-packages. Однако эта папка не существует. Видимо, он добавил activate_this.py в строке 22: site_packages = os.path.join (основание, 'Lib', 'питона% s' % sys.version [: 3], 'сайт-пакеты') Кто-нибудь может мне помочь? Спасибо
otaviosoares
1

голосов
1

ответ
630

Просмотры

Замена WSGI для CGIXMLRPCRequestHandler?

Вполне понятно, что разветвление процесса для запуска Python как CGI делает, это медленнее, чем вложение Python, так как WSGI делает. Я хотел бы реализовать интерфейс XML-RPC с использованием SimpleXMLRPCServer, включенными в стандартной библиотеке Python и у меня уже есть реализация, которая работает через CGI. Я считаю, что должно быть более быстрым способом. Я хотел бы попробовать WSGI, но первый мне нужен обработчик запроса для WSGI и там не кажется, один в SimpleXMLRPCServer уже. Могу ли я все мокрые или не существует никакого эквивалента этого в стандартной библиотеке под Python 2.6, 2.7, 3.x? Вот моя первая реализация замены WSGI для CGIXMLRPCRequestHandler: от XMLRPCLIB импорта SimpleXMLRPCDispatcher класса WSGIXMLRPCRequestHandler (SimpleXMLRPCDispatcher): «» «» «Простой обработчик данных XML-RPC, передаваемых через WSGI.» __init __ четкости (я, allow_none = False, кодировка = None): результат "" "Синтаксический и обрабатывать один запрос XML-RPC" "": SimpleXMLRPCDispatcher .__ INIT __ (я, allow_none, кодирование) Защиту __call __ (я, окружать, start_response) = [] метод = окружать [ 'REQUEST_METHOD'] заголовки = [( 'Content-Type', 'текст / html')], если метод = 'POST': # по умолчанию реализация указывает на ошибку, потому что XML-RPC использует метод POST , код = 400 сообщения, объясняет = BaseHTTPServer.BaseHTTPRequestHandler.responses [код] состояние = '% d% s' % (код, сообщение), если метод == 'ГОЛОВКА': ответ = '' еще: ответ = BaseHTTPServer.DEFAULT_ERROR_MESSAGE% { «код»: код, «сообщение»: сообщение "
Greg Smethells
1

голосов
2

ответ
1.4k

Просмотры

Не могу найти .pyc файлов для Джанго / Apache / mod_wsgi

Я бегу веб-приложение на python2.7 с mod_wsgi / апача. Все это хорошо, но я не могу найти .pyc файлов. Разве они не получают генерироваться с mod_wsgi?
Sid
1

голосов
1

ответ
422

Просмотры

Как я могу UnitTest код WSGI, который использует GEvent?

Я хотел бы проверить свою WSGI библиотеку с WSGI серверов GEvent, чтобы убедиться, что параметры запроса не просочилась / перезаписаны с теми из другого запроса / greenlet - в моей просьбе библиотеки является «глобальным», хотя она должна быть поточно-.. ., который я хотел бы проверить с помощью GEvent. Какие подходы можно использовать? Существуют ли какие-либо открытым исходным кодом проектов, которые уже имеют UnitTests, которые достигают этого, из которого я мог бы учиться?
Phillip B Oldham
1

голосов
1

ответ
177

Просмотры

upgrading python in ubuntu

В настоящее время у меня есть рабочий сайт на Ubuntu 10.04, питон 2.6.5, Django 1.3, virtualenv и mod_wsgi. У меня также есть Nginx, обслуживающий статические файлы, но я не уверен, что вписывается в это уравнение. Я установить это более года назад и действительно только узнал достаточно, чтобы получить это происходит, так что я не помню точные шаги, которые я сделал, чтобы получить это происходит на начальном этапе. У меня есть необходимость начать использовать Python 2.7, но я не совсем уверен, что лучший способ пойти об этом. Из того, что я читал, это выглядит, как мне нужно заново установить mod_wsgi специально для 2.7. Я считаю, что шаги для достижения этой цели являются чем-то вроде следующего: деинсталлировать mod_wsgi. insatll питона 2,7 (я считаю, что это может жить вместе с 2,6?) повторно установить mod_wsgi специально для Python 2.7. создать новый virtualenv с помощью 2.7 и повторно установить требование. Я тоже смотрел на моем Джанго. WSGI файл, который я имел установку, что Апач указывает (в моем проекте): импорт ОС, SYS импорт сайт wsgi_dir = os.path.abspath (os.path.join (os.path.dirname (__ FILE__))) project_dir = Os. path.dirname (wsgi_dir) ROOT_DIR = os.path.join (project_dir, '..') site.addsitedir (os.path.join (ROOT_DIR, 'ENV / Lib / python2.6 / сайт-пакеты')) SYS. path.append (project_dir) os.environ [ 'DJANGO_SETTINGS_MODULE'] импорт django.core.handlers.wsgi приложения = 'Настройки' = django.core.handlers.wsgi.WSGIHandler () И я не вижу где-нибудь, что я специально называю из питона двоичных использовать, так что я думаю, что нужно добавить что-то там для этого. Так что мой вопрос: Какие шаги мне нужно предпринять, чтобы обновить настройки в Python 2.7? присоединиться (os.path.dirname (__ FILE__))) project_dir = os.path.dirname (wsgi_dir) ROOT_DIR = os.path.join (project_dir,».. ') site.addsitedir (os.path.join (ROOT_DIR' ENV / Lib / python2.6 / сайт-пакеты ')) sys.path.append (project_dir) os.environ [' DJANGO_SETTINGS_MODULE '] = 'импорта django.core.handlers.wsgi настройки приложения'= django.core.handlers. wsgi.WSGIHandler () И я не вижу где-нибудь, что я специально крикнуть питон бинарного использовать, так что я думаю, что нужно добавить что-то там для этого. Так что мой вопрос: Какие шаги мне нужно предпринять, чтобы обновить настройки в Python 2.7? присоединиться (os.path.dirname (__ FILE__))) project_dir = os.path.dirname (wsgi_dir) ROOT_DIR = os.path.join (project_dir,».. ') site.addsitedir (os.path.join (ROOT_DIR' ENV / Lib / python2.6 / сайт-пакеты ')) sys.path.append (project_dir) os.environ [' DJANGO_SETTINGS_MODULE '] = 'импорта django.core.handlers.wsgi настройки приложения'= django.core.handlers. wsgi.WSGIHandler () И я не вижу где-нибудь, что я специально крикнуть питон бинарного использовать, так что я думаю, что нужно добавить что-то там для этого. Так что мой вопрос: Какие шаги мне нужно предпринять, чтобы обновить настройки в Python 2.7? окружать [ «DJANGO_SETTINGS_MODULE»] = «настройки» импорта django.core.handlers.wsgi приложение = django.core.handlers.wsgi.WSGIHandler () И я не вижу где-нибудь, что я специально взывать двоичный питона использовать, так Я думаю, что нужно добавить что-то там для этого. Так что мой вопрос: Какие шаги мне нужно предпринять, чтобы обновить настройки в Python 2.7? окружать [ «DJANGO_SETTINGS_MODULE»] = «настройки» импорта django.core.handlers.wsgi приложение = django.core.handlers.wsgi.WSGIHandler () И я не вижу где-нибудь, что я специально взывать двоичный питона использовать, так Я думаю, что нужно добавить что-то там для этого. Так что мой вопрос: Какие шаги мне нужно предпринять, чтобы обновить настройки в Python 2.7?
user417918
1

голосов
1

ответ
361

Просмотры

Можно ли использовать специальные символы для отображения адреса в WSGI скрипты в апаче конфигурации?

У меня есть ряд ПРОФ проектов, которые я хочу, чтобы иметь в своем распоряжении от моего веб-сервера, можно использовать подстановочные знаки для автоматического отображения адреса в соответствующем файле WSGI? Я могу сделать это вручную, добавив следующий VirtualHost: DocumentRoot /var/www/trac.mydomain.com ServerName trac.mydomain.com WSGIScriptAlias ​​/ project1 /var/trac/project1/trac.wsgi Однако, как я открыть еще Trac проекты по количество WSGIScriptAlias ​​линий увеличивается. Можно ли использовать подстановочные знаки для автоматического отображения входящего URL на нужный файл WSGI? Я полагаю, что это будет выглядеть примерно так: DocumentRoot /var/www/trac.mydomain.com ServerName trac.mydomain.com WSGIScriptAlias ​​/ /var/trac//trac.wsgi
MrBushido
1

голосов
1

ответ
178

Просмотры

last_accessed время в мензурку сессии всегда None, но _accessed_time меняется

Я использую мензурки WSGI SessionMiddleware для управления сеансом между браузером и приложением. Я пытаюсь провести различие между тем, когда сеанс первым доступен от любых дальнейших запросов. FOM документацию оказывается есть два полезных значения доступны в среде WSGI, [ «beaker.session»]. Last_accessed и [ «beaker.session»] [ «_ accessed_time»] Однако на неоднократные просьбы [ «beaker.session» ] .last_accessed не всегда возвращается None, в то время как значение временной метки в [ «beaker.session»] [ «_ accessed_time»] можно видеть, растет с каждым запросом. Каждый запрос выполняет [ «beaker.session»] сохранить () - Я пробовал различные комбинации установки автоматического = True в сессии, используя .save () / .persist (), но никакой радости:. .Last_accessed не всегда Никто. Я не использую сессию фактически сохраняются какие-либо данные, только для управления созданием и пройти через session.id. (Я использую тип сеанса «куки»)
Matt Warren
1

голосов
1

ответ
8k

Просмотры

не ImportError: Нет модуль с именем веб

Я получаю эту ошибку в моем файле журнала апач ошибки, когда я пытаюсь запустить мой web.py приложение с использованием mod_wsgi. Я успешно установил web.py на мой виртуальный хостинг, и я могу подтвердить, что я могу импортировать его на месте: >>> импорта веб >>> web.application (( «/», «тест»), Глобалы ()) Я также возможность запускать встроенный в сервер и успешно обслуживать страницы на моем сайте. Я могу подтвердить, что модуль mod_wsgi работает в апаче, а так как я в состоянии обслуживать страницы с помощью ручного кодирования в приложении WSGI. Я попробовал предложенный метод для ImportError: Нет модуля назвал сообщение веб-ошибок на web.py документации http://webpy.org/install#apachemodwsgi, то есть, добавив: abspath = os.path.dirname (__ FILE__) sys.path .append (abspath) os.chdir (abspath) веб-импорта я также добавил файлы тег предложенному в HTTP. конф файл, который представляется излишним, так как у меня есть HTDOCS реж установить уже, но в любом случае. Мой файл httpd.conf ниже, я перезапущен апач, и я все еще получаю сообщение об ошибке импорта. ServerRoot "/ главная / usr1 / WebApps / тест / apache2" LoadModule dir_module модули / mod_dir.so LoadModule env_module модули / mod_env.so LoadModule log_config_module модули / mod_log_config.so LoadModule mime_module модули / mod_mime.so LoadModule rewrite_module модули / mod_rewrite.so LoadModule setenvif_module модули / mod_setenvif.so LoadModule wsgi_module модули / mod_wsgi.so LogFormat "% {Х-Forwarded-For} я% л% у% т \" % г \»%> s% б \ "% {Referer} я \" \ "% {User-Agent} я \"»Объединенные CustomLog / дома / usr1 / WebApps / тест / журналы комбинированный индекс DirectoryIndex.
alh
1

голосов
3

ответ
885

Просмотры

Развертывание WSGI приложений - Apache и / или Nginx

Я только недавно начал работать с инфраструктурами на основе Python WSGI (Pyramid и КОЛБУ). Я работаю с Apache с тех пор навсегда, но в последнее время я получил много шумихи для асинхронных неблокирующих событий на основе таких технологий, как Node.js и Nginx. Поэтому я решил, что, когда мое приложение переходит в производство, его будет работать в виртуальном сервере облака на Nginx и его будет супер, пупер быстро ... но, чем я думал ... Секундочку ... WSGI приложение является приложением BLOCKING дизайна. Так что не приложение WSGI реально работать хуже, чем Nginx Apache, так как он будет блокировать процесс и заклинить сервер сразу? Вероятно, Apache гораздо лучше, чем для моего приложения с его многопоточности. Во всяком случае, теперь я пытаюсь понять, что я буду использовать в производстве, так что я могу подготовить и оптимизировать таким образом. Я довольно много новичок в этой области, так что у меня есть некоторые идеи, но я не уверен, что маршрут принять. 1.) Есть Nginx служить моей WSGI приложение, но создать своего рода балансировки нагрузки, который посылает запросы в различные Nginx случаях, как работает один процесс, вероятно, с треском провалились, как мой питон приложение будет блокировать его. Так что я бы работает 4-8 Nginx в. 2.) Есть апач служить все, WSGI + статическую 3.) имеют апач служить приложение через mod_wsgi и Nginx служат статические файлы 4.) Любые другие решения? Я ищу лучший равновесию между производительностью, использованием ресурсов, надежностью и удобством. Я не верю, что либо Nginx или Apache будет узким местом для моего приложения, если настроено правильно. Спасибо но создать своего рода балансировки нагрузки, который посылает запросы в различные Nginx случаях, как работает один процесс, вероятно, с треском провалились, как мой питон приложение будет блокировать его. Так что я бы работает 4-8 Nginx в. 2.) Есть апач служить все, WSGI + статическую 3.) имеют апач служить приложение через mod_wsgi и Nginx служат статические файлы 4.) Любые другие решения? Я ищу лучший равновесию между производительностью, использованием ресурсов, надежностью и удобством. Я не верю, что либо Nginx или Apache будет узким местом для моего приложения, если настроено правильно. Спасибо но создать своего рода балансировки нагрузки, который посылает запросы в различные Nginx случаях, как работает один процесс, вероятно, с треском провалились, как мой питон приложение будет блокировать его. Так что я бы работает 4-8 Nginx в. 2.) Есть апач служить все, WSGI + статическую 3.) имеют апач служить приложение через mod_wsgi и Nginx служат статические файлы 4.) Любые другие решения? Я ищу лучший равновесию между производительностью, использованием ресурсов, надежностью и удобством. Я не верю, что либо Nginx или Apache будет узким местом для моего приложения, если настроено правильно. Спасибо ) Есть апач служить приложение через mod_wsgi и Nginx служат статические файлы 4.) Любые другие решения? Я ищу лучший равновесию между производительностью, использованием ресурсов, надежностью и удобством. Я не верю, что либо Nginx или Apache будет узким местом для моего приложения, если настроено правильно. Спасибо ) Есть апач служить приложение через mod_wsgi и Nginx служат статические файлы 4.) Любые другие решения? Я ищу лучший равновесию между производительностью, использованием ресурсов, надежностью и удобством. Я не верю, что либо Nginx или Apache будет узким местом для моего приложения, если настроено правильно. Спасибо
if __name__ is None
1

голосов
1

ответ
40

Просмотры

Как питон-WSGI управлять запросами HTTP?

Просто у меня проблемы, а также быть осветление. Каков реальный способ, которым программа WSGI управлять хитами, приходящих к приложению? Существуют отдельные потоки для каждого запроса или один поток для всех запросов? Тогда то, что произойдет, если число запросов в то время увеличится? Я сейчас есть некоторые конфигурации Apache для потоков и процессов, как WSGIDaemonProcess также нашел ответы на http://code.google.com/p/modwsgi/wiki/ProcessesAndThreading Но может ли один объяснить мне, как точный способ, которым WSGI управлять запросами для применения? Как мы можем настроить это. Спасибо
Chamith Malinda
1

голосов
1

ответ
1.7k

Просмотры

WSGIDaemonProcess.threads mod_wsgi в - что это контролировать?

В GeoDjango документации он упоминает, что GDAL не поточно-и, таким образом, приложение должно выполняться в одном потоке, установив WSGIDaemonProcess атрибуты темы 1. Какова взаимосвязь между этой установкой и собственными модулями MPM в Apache? По умолчанию мой веб-сервер Apache настроен на использование 2 процесса с масштабированием автоматической резьбы ... (Graham правильно указал ниже, что это не так). настройка WSGIDaemonProcess заставить бы это без каких-либо нитей, или только для управления разветвлением на выходе модуля MPM это?
Goro
1

голосов
2

ответ
1.2k

Просмотры

Перемежающиеся 500 ошибок HTTP с колбой и WSGI

Я пытаюсь настроить приложение Flask на компьютере под управлением Apache и mod_wsgi. Мои приложения работают «случайно» хорошо, это означает, что иногда это работает, и иногда я обновить его, и он бросает Внутреннюю ошибку сервера. Это кажется совершенно случайным образом .. Я очистил кеш моего браузера, попробовал другой браузер, попробовал режим инкогнито, попросил друга, чтобы попытаться с его ноутбука. Он всегда показывает это перемежающаяся 500 поведение. Кто-нибудь есть какие-либо идеи, где я могу искать причину? Или, возможно, вы имели эту проблему раньше? Все данные, которые я могу думать об этом ниже, дайте мне знать, если вам нужно что-нибудь еще. Спасибо! Error_log Apache показывает следующее, когда освежающим терпит неудачу: [Wed 14 августа 16:42:52 2013] [ошибка] [клиент 171.65.95.100] mod_wsgi (PID = 1160): Target WSGI сценарий «/ дом / сервер / серверы / flaskapp .wsgi» не может быть загружен как модуль Python. [Ср 14 августа 2013 16:42:52] [ошибка] [клиент 171.65.95.100] mod_wsgi (PID = 1160): Исключение произошло обработка WSGI сценария '/home/server/servers/flaskapp.wsgi'. [Wed 14 августа 16:42:52 2013] [ошибка] [клиент 171.65.95.100] Traceback (самый последний вызов последнего): [Wed 14 августа 16:42:52 2013] [ошибка] [клиент 171.65.95.100] Файл " /home/server/servers/flaskapp.wsgi», строка 5, в [Ср 14 августа 16:42:52 2013] [ошибка] [клиент 171.65.95.100] из flaskapp.frontend импорта приложения [Ср 14 августа 16:42: 52 2013] [ошибка] [клиент 171.65.95.100] ImportError: не может импортировать название приложения Приложение организовано следующим образом: flaskapp.wsgi flaskapp / __init__.py (пусто) settings.py интерфейс / __init__.py (приложение определено здесь) статический / шаблоны style.css / индекс.
joaor
1

голосов
2

ответ
157

Просмотры

Странный лаг апач в запросах

У меня есть настройка Apache2 и Джанго (mod_wsgi), который предоставляет RESTful API. У меня есть набор автоматических тестов для этого, который выполняет ~ 1000 запросов API (чистый HTTP GET / POST / PUT / DELETE) в последовательном порядке. Проблема заключается в том, на каждые 80 запросов или около того, я получаю странную лаг / таймаут ровно 5 секунд или 10 секунд. См примеры временных меток здесь: Запрос 1: 2013-08-30T03: 49: 20,915 Ответ 1: 2013-08-30T03: 49: 30,940 Запрос 2: 2013-08-30T03: 50: 32,559 Ответ 2: 2013-08-30T03: 50: 37,597 Я не могу понять, почему это происходит. У меня есть апачский конфиг с KeepAlive Off (настройка для Джанго рекомендуется установка), но в противном случае стандартной установки для Ubuntu 12.04 LTS. Я бегу испытания с того же сервера, где веб-сервер, я сначала подумал, что это какой-то кэш DNS вещи, но я добавил имя хоста I» м с просьбой / и т.д. / хостов, но проблема остается. Система находится в режиме ожидания, и есть много центрального процессора и мем, когда это отставание / таймауты происходит. Отставание не является специфичным для определенного запроса (URL), это, кажется, своего рода случайным. Учитывая, что это всегда в точности миллисекунды 5s или 10s, он чувствует, как это некоторые конкретные настройки где-то причина этого.
Niklas9
1

голосов
1

ответ
52

Просмотры

Как я могу получить Apache надежно обслуживать большое количество портов?

У меня есть выделенный сервер с помощью Apache для прослушивания девять нестандартных портов (8xxx), которые поставляют услуги API через SSL. Порты 80 и 443 используются для обслуживания статического контента и услуги «Патруля», который указывает на состояние других услуг. Через несколько дней, услуги начинают терпеть неудачу, потому что кажется, что Apache направляют запросы службы на службу Патруля, а не к намеченному службе. Перезапуск Apache устраняет эту проблему, пока не произойдет снова. Услуги осуществляются с использованием WSGI. Существует сервис API наследия пирамиды настроена следующим образом: WSGIApplicationGroup% {GLOBAL} WSGIPassAuthorization На WSGIDaemonProcess пирамидального пользователя = убунт группа = убунт тема = 4 \ питон-путь = / главный / Ubuntu / ev_mis / Lib / python2.7 / сайт-пакеты WSGIScriptAlias ​​/ MIS / дома / убунту / ev_mis / неправильно. ЭЛТ SSLOptions + StrictRequire Наконец, есть конфигурация Overwatch службы: DocumentRoot / вар / WWW Алиас / статический / вар / WWW / статический заказ разрешить, запретить Разрешить из всех псевдонимов / уменьшенных изображений / вар / WWW / эскизами заказа разрешить, запретить Разрешить из всех WSGIScriptAlias / /var/www/overwatch/overwatch/wsgi.py ErrorLog $ {} APACHE_LOG_DIR /error.log # Возможные значения включают: отладки, информация, уведомление, предупредит, ошибка, крит, # ​​предупреждение, Авар. LOGLEVEL предупреждают CustomLog $ {APACHE_LOG_DIR} /access.log в сочетании Это пример wsgi.py файла: импорт ОС от os.path импорта abspath, имя_директории от пути SYS импорта из ОС импорта Environ SITE_ROOT = (имя папки имя папки (abspath (__ FILE__)) ) path.append (SITE_ROOT), из django.core.wsgi импорта get_wsgi_application приложения четкости (req_environ, start_response): окружат [ "DJANGO_SETTINGS_MODULE" ] = Req_environ.get ( "DJANGO_SETTINGS_MODULE", environ.get ( "DJANGO_SETTINGS_MODULE", ничего нет)) возвращение get_wsgi_application () (req_environ, start_response) Например: https://example.com/ дает Overwatch таблица состояния и HTTPS: / /example.com:8123/data/ дает данные службы на одной из услуг. Анализ показывает, что Апач неправильно направил вызов в Overwatch службы. Например https://example.com:8123/data/ дает теперь страница не найдена трассировка показывает, что он был подан Патруль службы WSGI. Как только это произойдет, это происходит последовательно, пока не перезапустить службу Apache. Тогда все в порядке в течение нескольких дней, пока не случится снова. Apache не сообщает никаких проблем конфигурации и начинается / перезагружается нормально. В настоящее время сервер только испытывает очень легкий тест трафика, но планируется идти жить в ближайшее время, и я понятия не имею, как решить этот вопрос ... не хватает, возможно, кусает пули и задержки запуска в то время как перенастроить все это использовать Nginx / gunicorn вместо апача, который чувствует себя как полицейский.
Paul Whipp
1

голосов
1

ответ
1.5k

Просмотры

апач 2 и колба, ReportLab registerFont «TTFError: Не удается открыть файл ...», но работает на сервере Dev

Я новичок в Python и я пытаюсь получить флягу микро-рамку для работы с Apache. Я использую инструкции по установке WSGI, как описано в следующей статье: https://www.digitalocean.com/community/articles/how-to-deploy-a-flask-application-on-an-ubuntu-vps, к сожалению, хотя приложение работает нормально, при попытке произвести PDF с помощью ReportLab я получаю следующую ошибку (выписку из апача журналов) [чт Янв 09 22:47:44 2014] [ошибка] оШИБКА: flaskapp Исключение: вкл / печать / 0 [ GET] [чт 09 янв 2014 22:47:44] [ошибка] Traceback (самый последний вызов последнего): [Чт Янв 09 22:47:44 2014] [ошибка] Файл «/usr/local/lib/python2.7 /dist-packages/flask/app.py», линии 1817, в wsgi_app [чт 9 января 2014 22:47:44] [ошибка] ответ = self.full_dispatch_request () [чт 9 января 2014 22:47:44] [ ошибка] Файл «/ USR / местные / Библиотека / python2. Не удается открыть файл «DroidSans.ttf», похоже, что registerFont не может получить доступ к шрифт. запустить его на сервере разработки, он отлично работает. Я попробовал несколько мест, даже положить шрифт в папку шрифтов в папке ReportLab, но до сих пор ничего. заглянул в этой статье, что наводит на мысль fast_cgi (для Django), но я не уверен, если это решит мою проблему. питон ReportLab - registerFont - Джанго - шрифт не доступен через какое-то время какие-либо идеи? Спасибо заглянул в этой статье, что наводит на мысль fast_cgi (для Django), но я не уверен, если это решит мою проблему. питон ReportLab - registerFont - Джанго - шрифт не доступен через какое-то время какие-либо идеи? Спасибо заглянул в этой статье, что наводит на мысль fast_cgi (для Django), но я не уверен, если это решит мою проблему. питон ReportLab - registerFont - Джанго - шрифт не доступен через какое-то время какие-либо идеи? Спасибо
Vasilis Kasapidis
1

голосов
1

ответ
409

Просмотры

Как изменить или отменить openshift.conf в Python 3.3 картриджа

Я хочу, чтобы развернуть проект с открытым исходным кодом на OpenShift, я не писал заявление. OpenShift кажется закодирован искать скрипт WSGI здесь: WSGIScriptAlias ​​/ «/ Var / Библиотека / OpenShift / 5320e280e0b8cd9e9a000362 / приложение корневой / выполнение / репо / WSGI / приложение» любую попытку изменить openshift.conf получает уничтожен, когда перезагружается картридж или перезагружается. Мне нужна эта директива будет WSGIScriptAlias ​​/ «/var/lib/openshift/5320e280e0b8cd9e9a000362/app-root/runtime/repo/myapp/wsgi.py» Я предпочитаю не иметь, чтобы взломать приложение, я не хочу иметь беспокоиться о будущих изменениях вверх по течению. Должен быть способ, чтобы изменить эту настройку, но я потратил часы на поиски безрезультатно.
rjb101
1

голосов
1

ответ
1.3k

Просмотры

Как реализовать динамическую маршрутизацию в Python?

Я пытаюсь иметь вход URL-адрес быть (своего рода URL) / страницы / (независимо номер страницы шаблона, мы хотим). У меня возникли проблемы с этим, и я не уверен, что проблема есть. Первая часть моего кода выглядит следующим образом: из wsgiref.simple_server импорта make_server из wsgiref.util импорта setup_testing_defaults routing_table = {} Защита маршрут (URL, FUNC): routing_table [URL] = FUNC Защиту find_path (URL): если адрес в routing_table : возвращение routing_table [URL] еще: возвращает None приложение четкости (окружат, start_response): setup_testing_defaults (окружат) обработчик = find_path (ENVIRON [ 'PATH_INFO']), если обработчик None: статус = '404 Not Found' тело = «Страница не Найдено»еще: статус = '200 OK' тело = обработчик () заголовки = [( 'Content-Type', 'текст / html: кодировка = UTF-8')] start_response (статус, заголовки) возвращение [body.encode ( "UTF-8")] Защита запуск (IP, порт): MyServer = make_server (IP, порт, приложение) печать ( "Обслуживание тестирование WSGI по адресу: //% s:% s «% (IP, порт)) myserver.serve_forever () следующая часть кода, где я считаю, что главная проблема происходит на странице (PAGE_ID): тест ИМПОРТ Re DEF индекс импорта (): обратный» Это главная страница "Защита привет (): возвращение„Привет, как ты?“ Защиту страница (page_id): возвращение "Это номер страницы:% d" % page_id если __name__ == '__main__': test.route ( "/", индекс) test.route ( "/ Hello", привет) test.route ( «/ страница /», страница) test.run ( «127.0.0.1», 8000) Мое мышление является то, что нам нужно импортировать шаблон, и иметь логику, определенную в шаблонах себя. Однако, когда я пытаюсь сделать это, я не могу "
kcmallard
1

голосов
1

ответ
152

Просмотры

Django, mod_wsgi--daemon mode, 403 Forbidden, works when in /var/www/html

Когда я двигаю / дома / Джанго / MySite в / вар / WWW / HTML / MySite и Чаун-R Apache: Apache, он работает. Но оставляя в домашней директории я получаю 403 Forbidden. Я буквально провел хорошие 6 часов, пытаясь получить эту работу. Огромный прогресс для меня, чтобы увидеть, что он работает в / вар / WWW / HTML, как я знаю, что все мои настройки «конфигурации» являются правильными. Вот мой httpd.conf (первая настройка пришлось добавить, чтобы остановить 503 внутренняя ошибка сервера) WSGISocketPrefix / вар / запустить / WSGI WSGIDaemonProcess Джанго пользователь = Джанго группа = Джанго питон-путь = / дом / Джанго / MySite WSGIProcessGroup Джанго ServerAdmin вебмастера @ mktrn .net ServerName endor.mktrn.net WSGIScriptAlias ​​/ /home/django/mysite/mysite/wsgi.py Опции FollowSymLinks AllowOverride None Order отрицать, позволяют разрешить из всех Заказ разрешить, запретить разрешить из всех Итак, еще раз, вышеуказанные работы, если я просто заменить / дома / Джанго / MySite, с / вар / WWW / HTML. Я бегу mod_wsgi как демон под пользователем Джанго - так что я не думаю, что это. Что я делаю неправильно? Я знаю, что это не умно, чтобы положить в / уаге / WWW / HTML, даже если у меня нет корня документа, поэтому на самом деле хочу, чтобы понять это!
brizz

Просмотр дополнительных вопросов