Apache httpd¶
Apache httpd - это быстрый HTTP-сервер производственного уровня. При обслуживании приложения с помощью одного из серверов WSGI, перечисленных в Развертывание в производство, часто полезно или необходимо поставить перед ним выделенный HTTP-сервер. Этот «обратный прокси» может обрабатывать входящие запросы, TLS и другие вопросы безопасности и производительности лучше, чем сервер WSGI.
httpd может быть установлен с помощью менеджера пакетов вашей системы или с помощью предварительно созданного исполняемого файла для Windows. Установка и запуск самого httpd выходит за рамки данного документа. На этой странице описаны основы настройки httpd для проксирования вашего приложения. Обязательно прочтите документацию, чтобы понять, какие функции доступны.
Доменное имя¶
Приобретение и настройка доменного имени выходит за рамки данного документа. В общем случае вы покупаете доменное имя у регистратора, оплачиваете место на сервере у хостинг-провайдера, а затем указываете регистратору на серверы имен хостинг-провайдера.
Чтобы смоделировать это, вы также можете отредактировать свой файл hosts
, расположенный по адресу /etc/hosts
в Linux. Добавьте строку, которая связывает имя с локальным IP.
Современные системы Linux могут быть настроены на обработку любого доменного имени, которое заканчивается на .localhost
таким образом, без добавления его в файл hosts
.
127.0.0.1 hello.localhost
Конфигурация¶
Конфигурация httpd находится по адресу /etc/httpd/conf/httpd.conf
в Linux. Она может отличаться в зависимости от вашей операционной системы. Проверьте документацию и найдите httpd.conf
.
Удалите или закомментируйте любую существующую директиву DocumentRoot
. Добавьте приведенные ниже строки конфигурации. Мы будем считать, что сервер WSGI прослушивается локально по адресу http://127.0.0.1:8000
.
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
ProxyPass / http://127.0.0.1:8000/
RequestHeader set X-Forwarded-Proto http
RequestHeader set X-Forwarded-Prefix /
Строки LoadModule
могут уже существовать. Если это так, убедитесь, что они не закомментированы, а не добавляйте их вручную.
Затем Сообщите Flask, что он находится за прокси-сервером, чтобы ваше приложение использовало заголовки X-Forwarded
. X-Forwarded-For
и X-Forwarded-Host
автоматически устанавливаются ProxyPass
.