Spec-Zone.ru › Werkzeug 2.0

Проксирование HTTP

Многие предпочитают использовать отдельный сервер Python HTTP и проксировать этот сервер через nginx, Apache и т.д.

Очень стабильным сервером Python является CherryPy. Эта часть документации покажет вам, как объединить ваше WSGI приложение с сервером CherryPy WSGI и как настроить веб-сервер для проксирования.

Создание сервера .py

Для запуска вашего приложения вам нужен файл start-server.py, который запускает сервер WSGI.

Он выглядит примерно так:

from cherrypy import wsgiserver
from yourapplication import make_app
server = wsgiserver.CherryPyWSGIServer(('localhost', 8080), make_app())
try:
    server.start()
except KeyboardInterrupt:
    server.stop()

Если вы сейчас запустите этот файл, сервер будет слушать на localhost:8080. Имейте в виду, что WSGI-приложения ведут себя немного иначе для проксированных установок. Если вы не разрабатывали свое приложение с учетом проксирования, вы можете применить middleware ProxyFix.

Настройка nginx

В качестве примера здесь показано, как настроить nginx для проксирования к серверу.

Основная конфигурация nginx выглядит так:

location / {
    proxy_set_header        Host $host;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass              http://127.0.0.1:8080;
    proxy_redirect          default;
}

Поскольку Nginx не запускает ваш сервер за вас, вам нужно сделать это самостоятельно. Вы можете либо написать скрипт init.d для этого, либо выполнить его внутри сессии экрана:

$ screen
$ python start-server.py

© 2007–2021 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/2.0.x/deployment/proxying/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API