Apache httpd¶
Apache httpd - это быстрый HTTP-сервер производственного уровня. При обслуживании приложения с помощью одного из серверов WSGI, перечисленных в Развертывание в производство, часто полезно или необходимо поставить перед ним выделенный HTTP-сервер. Этот «обратный прокси» может обрабатывать входящие запросы, TLS и другие вопросы безопасности и производительности лучше, чем сервер WSGI.
httpd может быть установлен с помощью менеджера пакетов вашей системы или с помощью предварительно созданного исполняемого файла для Windows. Установка и запуск самого httpd выходит за рамки данного документа. На этой странице описаны основы настройки httpd для проксирования вашего приложения. Обязательно прочтите документацию, чтобы понять, какие функции доступны.
Доменное имя¶
Приобретение и настройка доменного имени выходит за рамки данного документа. В общем случае вы покупаете доменное имя у регистратора, оплачиваете место на сервере у хостинг-провайдера, а затем указываете регистратору на серверы имен хостинг-провайдера.
Чтобы смоделировать это, вы также можете отредактировать свой файл hosts, расположенный по адресу /etc/hosts в Linux. Добавьте строку, которая связывает имя с локальным IP.
Современные системы Linux могут быть настроены на обработку любого доменного имени, которое заканчивается на .localhost таким образом, без добавления его в файл hosts.
/etc/hosts¶127.0.0.1 hello.localhost
Конфигурация¶
Конфигурация httpd находится по адресу /etc/httpd/conf/httpd.conf в Linux. Она может отличаться в зависимости от вашей операционной системы. Проверьте документацию и найдите httpd.conf.
Удалите или закомментируйте любую существующую директиву DocumentRoot. Добавьте приведенные ниже строки конфигурации. Мы будем считать, что сервер WSGI прослушивается локально по адресу http://127.0.0.1:8000.
/etc/httpd/conf/httpd.conf¶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.