V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
JiaFeiX
V2EX  ›  Django

Django 1.9 为什么要移除 FastCGI 支持?

  •  
  •   JiaFeiX · 2016-12-09 00:57:51 +08:00 · 4466 次点击
    这是一个创建于 2900 天前的主题,其中的信息可能已经有所发展或是发生改变。
    12 条回复    2016-12-09 16:45:23 +08:00
    raysonx
        1
    raysonx  
       2016-12-09 01:17:03 +08:00 via iPad
    https://groups.google.com/forum/m/#!topic/django-developers/oGmD8LvLTPg/discussion
    Google 搜索“ django 1.7 fastcgi ”第一条。。。
    Sight4
        2
    Sight4  
       2016-12-09 09:14:33 +08:00
    1. WSGI 已经成为 Python Web 部署事实上的标准。无论是 mod_wsig 、 gunicorn 、 uwsgi 对 WSGI 的支持已经很完善;另一方面,几乎所有的 Python Web 框架都会对 WSGI 进行适配。
    2. FastCGI 属于语言无关的 socket 通信,在使用 FastCGI 的时候,框架还是要先起一个 WSGIServer 服务,所以,即使 django 移除了 FastCGI 支持,仍然可以拿一个 WSGIServer 起 app ,然后 fastcgi_pass 到这...so ,写 WSGIServer 这事情就交给专人做吧,框架就该减减身子, django 已经向重型化发展了
    sagaxu
        3
    sagaxu  
       2016-12-09 09:28:54 +08:00 via Android
    除了 php ,还有用 fastcgi 的吗?
    glasslion
        4
    glasslion  
       2016-12-09 10:01:53 +08:00
    之前 django 的 fastcgi 也是调的 wsgi 。 fastcgi 到 wsgi 的转换是通过第三方的 flup 实现的。 django 那边总共没几行代码。

    去掉 fastcgi 支持,主要是为了表明不建议使用 fastcgi 和避免误导新人
    enenaaa
        5
    enenaaa  
       2016-12-09 12:02:47 +08:00
    @sagaxu 有啊, 用 c/c++,或其他没有特定传输规范的语言写的后端,除了 cgi 就是 fastcgi 咯。
    sagaxu
        6
    sagaxu  
       2016-12-09 12:49:25 +08:00
    @enenaaa 不能直接走 HTTP 协议?
    enenaaa
        7
    enenaaa  
       2016-12-09 12:56:35 +08:00
    @sagaxu 说的就是 webserver upstream 到 app 这一段啊。 c 写的独立后端 app ,总不能自己实现个 nginx 吧。 python 有 uwsgi , 其他语言只好 cgi 或 fastcgi 啊。
    当然,现在多半是 nginx 模块来实现了, 还有 openresty 之类的。
    sagaxu
        8
    sagaxu  
       2016-12-09 13:09:55 +08:00
    @enenaaa C 内嵌个 http server 很方便的吧。 Java 现在流行内置 tomcat 了, php 最近也有一些内置 http server 的框架,性能远超跑 fpm 里的框架。 ruby 版的 wsgi 叫 rack , go 语言则是标准库内置 http 服务, nodejs 也是内置 http 。 fastcgi 往前数个十年,倒是挺主流的。
    enenaaa
        9
    enenaaa  
       2016-12-09 13:54:00 +08:00
    @sagaxu 没必要内嵌,实在想用 http 方式,做成 nginx 模块多快好省,不想受拘束就 fastcgi 。
    http 和 fastcgi 都是同步通讯,性能上不会有太大区别。
    qweweretrt515
        10
    qweweretrt515  
       2016-12-09 16:00:28 +08:00
    搭车问一句: django 用什么方式 性能最好,目前我是直接 python manage.py runserver
    virusdefender
        11
    virusdefender  
       2016-12-09 16:22:57 +08:00   ❤️ 1
    @qweweretrt515 你这是单线程的开发 server ,建议 nginx + gunicorn
    JiaFeiX
        12
    JiaFeiX  
    OP
       2016-12-09 16:45:23 +08:00
    那各位, Windows 下的 WSGI 如何搞? 只有 Apache 的 mod_WSGI 吗? 为什么 Nginx 没有呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1444 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:43 · PVG 01:43 · LAX 09:43 · JFK 12:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.