首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中使用WSGI的反向代理

在Python中使用WSGI的反向代理
EN

Stack Overflow用户
提问于 2015-05-13 09:14:26
回答 3查看 2.1K关注 0票数 2

应用程序,用水瓶建造的。我希望有以下路由:

代码语言:javascript
复制
"/"     -> my Flask app
"/foo/" -> Reverse proxy toward http://bar/

到目前为止,我还没有任何反向代理,因此我的应用程序看起来如下:

代码语言:javascript
复制
import app
[...]
if __name__ == '__main__':
    app.app.secret_key = 'XXX'
    app.app.run(debug=True, use_reloader=False)

我希望整个项目只在python中完成。我不想要任何Apache或nginx堆栈(这个项目不应该出现在公共网络上)。我看到我可以使用Python服务器,比如cherrypy中的"wsgiserver“,所以我的应用程序是:

代码语言:javascript
复制
from cherrypy import wsgiserver
import app

d = wsgiserver.WSGIPathInfoDispatcher({
    '/': app.app.wsgi_app
})
server = wsgiserver.CherryPyWSGIServer(('0.0.0.0', 8080), d)

if __name__ == '__main__':
      server.start()

如果我想在"/foo“中添加一个反向代理,我想我只需要:

代码语言:javascript
复制
from cherrypy import wsgiserver
import app

d = wsgiserver.WSGIPathInfoDispatcher({
    '/': app.app.wsgi_app,
    '/foo/': SOME_WSGI_REVERSE_PROXY
})
server = wsgiserver.CherryPyWSGIServer(('0.0.0.0', 8080), d)

if __name__ == '__main__':
      server.start()

所以我的问题是:

  • 是否有任何用python编写的反向代理符合WSGI?(我不知道是否存在SOME_WSGI_REVERSE_PROXY )
  • 它是否适用于这种实现?

安沃瑟:

正如公认的anwser所提到的,下面是最后的代码:

代码语言:javascript
复制
from cherrypy import wsgiserver
import wsgiproxy.app
import app
app = app.app.wsgi_app
proxy = wsgiproxy.app.WSGIProxyApp("http://bar/")
d = wsgiserver.WSGIPathInfoDispatcher({
    '/': app,
    '/foo/':proxy
})
server = wsgiserver.CherryPyWSGIServer(('0.0.0.0', 8080), d)

if __name__ == '__main__':
   try:
      server.start()
   except KeyboardInterrupt:
      server.stop()
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-05-13 09:23:48

请参阅粘贴代理中间件。

  • http://pythonpaste.org/wsgiproxy/
票数 1
EN

Stack Overflow用户

发布于 2022-07-15 22:52:43

现在,这似乎是原始wsgiproxy的一个积极维护的替代方案:https://pypi.org/project/WSGIProxy2/

票数 0
EN

Stack Overflow用户

发布于 2015-08-06 20:08:21

mitmproxy: mitmproxy.org,它是一个具有反向代理功能的python代理。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30210428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档