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.

Вернуться на верх