nginx

nginx - это быстрый HTTP-сервер производственного уровня. При обслуживании приложения с помощью одного из серверов WSGI, перечисленных в Развертывание в производство, часто полезно или необходимо поставить перед ним выделенный HTTP-сервер. Этот «обратный прокси» может обрабатывать входящие запросы, TLS и другие вопросы безопасности и производительности лучше, чем сервер WSGI.

Nginx можно установить с помощью системного менеджера пакетов или предварительно созданного исполняемого файла для Windows. Установка и запуск самого Nginx выходит за рамки данного документа. На этой странице описаны основы настройки Nginx для проксирования вашего приложения. Обязательно прочитайте документацию, чтобы понять, какие функции доступны.

Доменное имя

Приобретение и настройка доменного имени выходит за рамки данного документа. В общем случае вы покупаете доменное имя у регистратора, оплачиваете место на сервере у хостинг-провайдера, а затем указываете регистратору на серверы имен хостинг-провайдера.

Чтобы смоделировать это, вы также можете отредактировать свой файл hosts, расположенный по адресу /etc/hosts в Linux. Добавьте строку, которая связывает имя с локальным IP.

Современные системы Linux могут быть настроены на обработку любого доменного имени, которое заканчивается на .localhost таким образом, без добавления его в файл hosts.

/etc/hosts
127.0.0.1 hello.localhost

Конфигурация

Конфигурация nginx находится по адресу /etc/nginx/nginx.conf в Linux. Она может отличаться в зависимости от вашей операционной системы. Проверьте документацию и найдите nginx.conf.

Удалите или закомментируйте любой существующий раздел server. Добавьте раздел server и используйте директиву proxy_pass, чтобы указать на адрес, по которому прослушивается сервер WSGI. Мы будем считать, что сервер WSGI прослушивает локальный адрес http://127.0.0.1:8000.

/etc/nginx.conf
server {
    listen 80;
    server_name _;

    location / {
        proxy_pass http://127.0.0.1:8000/;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Prefix /;
    }
}

Затем Сообщите Flask, что он находится за прокси-сервером, чтобы ваше приложение использовало эти заголовки.

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