nginx
nginx — это быстрый HTTP-сервер, предназначенный для работы в производственных условиях. При работе вашего приложения с одним из WSGI-серверов, перечисленных в Развёртывание в производство, часто бывает целесообразно или необходимо разместить отдельный HTTP-сервер перед ним. Этот «обратный прокси» может лучше обрабатывать входящие запросы, TLS и другие вопросы безопасности и производительности, чем WSGI-сервер.
Nginx можно установить с помощью менеджера пакетов вашей системы или предварительно собранного исполняемого файла для Windows. Установка и запуск самого Nginx не входят в область охвата данного документа. На этой странице описаны основы конфигурации Nginx для проксирования вашего приложения. Обязательно прочитайте его документацию, чтобы понять, какие функции доступны.
Имя домена
Получение и настройка имени домена не входят в область охвата данного документа. В общем случае, вы покупаете доменное имя у регистратора, оплачиваете серверное пространство у хостинг-провайдера, а затем указываете регистратору DNS-серверы хостинг-провайдера.
Для имитации этого вы также можете отредактировать файл hosts, расположенный по адресу /etc/hosts в Linux. Добавьте строку, которая связывает имя с локальным IP-адресом.
Современные системы Linux могут быть настроены так, чтобы обрабатывать любое доменное имя, заканчивающееся на .localhost, таким образом, без добавления его в файл hosts.
/etc/hosts127.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.confserver {
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 /;
}
}
Затем Укажите Werkzeug, что он находится за прокси, чтобы ваше приложение использовало эти заголовки.
Статические файлы
Если ваше приложение имеет статические файлы, такие как JavaScript, CSS и изображения, будет более эффективно, если Nginx будет обслуживать их напрямую, а не через Python-приложение.
Предполагая, что статические файлы должны быть доступны по URL /static/, и хранятся в /home/project/static/, добавьте следующее в блок server выше.
location /static {
alias /home/project/static;
}
© 2007 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/latest/deployment/nginx/