iambic
V2EX  ›  问与答

请问 nginx 和 bottle 问题

  •  
  •   iambic · Jul 31, 2015 · 2823 views
    This topic created in 3943 days ago, the information mentioned may be changed or developed.

    RT,之前在这边请教过python和PHP的通信,大家很多很多建议,非常感谢。

    最终决定使用bottle来对外提供RESTful接口供PHP调用,这个主要原因是我期望这部分逻辑尽量简单,bottle架构和源码相对比较短,应该能大致读下来。

    现在的问题是,官方文档说,如果作为http server的话,bottle只能在开发环境里使用,不要放到生成环境里,原因是效率问题。我理解就是在解析http请求这些操作上,bottle的效率非常低,所以计划前边放一个nginx来处理http请求,将格式化之后的请求扔给bottle

    除此之外,nginx应该还可以处理像白名单,访问频率控制等等这些事情。

    但是在bottle文档里,似乎没有提到nginx部分,在deploy部分,提到用gunicorn(或者其他)作为server,处理请求,我想请教一下

    1. 直接nginx + bottle 会有什么问题吗?
    2. gunicorn 扮演的是和nginx类似的角色吗?
    3. 还有其他推荐的方式吗?

    谢谢

    3 replies    2015-07-31 12:24:04 +08:00
    decken
        1
    decken  
       Jul 31, 2015 via Android
    nginx作为web服务器处理静态请求 gunicorn是CGI 是运行python脚本的容器,动态请求由nginx交由CGI处理
    julyclyde
        2
    julyclyde  
       Jul 31, 2015
    nginx如果用HTTP方式和bottle相连,那bottle还是免不了解析HTTP

    你理解的瓶颈在文本协议解析上是不对的。真正的问题在于框架本身只处理了请求,而没有关注多进程和IO复用的资源管理。你需要的是gunicorn
    maemual
        3
    maemual  
       Jul 31, 2015
    懒得解释了。
    Nginx + gunicorn + bottle,这是常用的部署方式。你放宽心就好了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3119 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 13:02 · PVG 21:02 · LAX 06:02 · JFK 09:02
    ♥ Do have faith in what you're doing.