Spec-Zone.ru › Werkzeug 0.15

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

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

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

Создание сервера .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:

$ screen
$ python start-server.py

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

Spec-Zone.ru

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