HTTP 代理 — Werkzeug 文档

来自菜鸟教程
Werkzeug/docs/1.0.x/deployment/proxying
跳转至:导航、​搜索

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 应用程序的行为略有不同。 如果您还没有开发用于代理的应用程序,您可以应用 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