Поток
Клиент получает доступ к веб-странице, скажем http://example.com/mangojuice (выпуск 1). Ваш сервер (apache) должен знать, что mangojuice ссылается на /etc/www/superhightechjuice/mango.py. Теперь этот файл Python должен быть выполнен (выпуск 2). Apache должен знать, что .py должен быть выполнен, а не обслуживаться без ошибок. Но Python не знает, когда проснуться и запустить. Поэтому нужна другая сущность (выпуск 3).
Решения трех проблем (интерфейсов) обрабатываются mod_wsgi:
WSGI унаследован от концепции CGI (которая использовалась для выполнения сценариев Perl и PHP-сценариев) для расширения до сценариев Python (с дополнительными функциями). mod_wsgi - это то, как Грэм Дамплтон реализовал это в Apache, и теперь это стандарт.
- Проблема 1 - файл конфигурации, который выполняет сопоставление - /etc/apache2/conf-available/wsgi.conf
- Проблема 2 - Установить mod_wsgi - во время установки он обновляет файлы конфигурации apache, чтобы сообщить, что .py должен быть выполнен; наряду с множеством других вещей
- Выпуск 3 - Функция - приложение
Код
def application(environ, start_response):
status = '200 OK'
message = b"Hello World" #Prefix b is useful to convert string to bytestring, which is needed by HTTP
response_header = [('Content-type', 'text/html')]
start_response(status, response_header)
return [message]
Причина
Когда вы устанавливаете mod_wsgi, он решает проблему 1, имея файл отображения wsgi.conf . Это решает проблему 2 путем обновления .conf файла apache , а также других настроек ОС. Что касается проблемы 3, она говорит apache, я являюсь промежуточным ПО, когда вижу ссылку на 'application' , я сообщу вам, и вы оба сможете общаться (Apache и Python). Вот как помогает mod_wsgi.
Шаги по настройке mod_wsgi
- Установить mod_wsgi для Apache2
sudo apt install libapache2-mod-wsgi
- Перезапустите Apache, чтобы обновить все обновления
apachectl restart
- Создать файл сопоставления
vi /etc/apache2/conf-available/wsgi.conf
- Обновите файл сопоставления с помощью URL и локального пути.
WSGIScriptAlias / mangojuice /etc/www/superhightechjuice/mango.py
- Создайте действительный код по адресу /etc/www/superhightechjuice/mango.py
Пример кода такой же, как указано выше. start_response сообщает mod_wsgi, что запросы поступают. mod_wsgi общается с Apache и пропускает ваш код.
Ссылка :
Официальная документация mod_wsgi