HTTP 代理 — Werkzeug 文档
来自菜鸟教程
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