如何在windows计算机上使用nginx运行django?

如何在windows计算机上使用nginx运行django?,django,nginx,Django,Nginx,我有一个django项目。我已经安装了nginx服务器。我想在windows机器上运行nginx和django。我尝试了一些博客。但他们都需要uwsgi。但是uwsgi没有安装在windows上,并给出“uname”错误。有没有办法在windows上安装和运行nginx和django?任何指点都会很有帮助的。谢谢 最佳方式(IMHO)是使用apache+mod_wsgi。uWSGI和Gunicorn都不支持windows(尽管uWSGI支持cygwin,所以你最终可以尝试它[如果你足够勇敢的话]

我有一个django项目。我已经安装了nginx服务器。我想在windows机器上运行nginx和django。我尝试了一些博客。但他们都需要uwsgi。但是uwsgi没有安装在windows上,并给出“uname”错误。有没有办法在windows上安装和运行nginx和django?任何指点都会很有帮助的。谢谢

最佳方式(IMHO)是使用apache+mod_wsgi。uWSGI和Gunicorn都不支持windows(尽管uWSGI支持cygwin,所以你最终可以尝试它[如果你足够勇敢的话])


另一种方法是在windows计算机上安装linux vm(virtualbox、vmware…),以承载从本地IIS到虚拟系统的应用程序和代理请求。

您可以尝试使用Helicon Zoo在具有IIS 7+的windows机上运行Django应用程序。Helicon动物园稳定,生产准备就绪


这里的教程:

这个问题是一年前的问题,但我将为其他正在寻找解决Windows Django/nginx问题的方法的人回答这个问题

因为uWSGI显然不是Windows的选项(忘记cygwin/虚拟环境)。我不想使用
mod_wsgi+Apache
,因为我必须将现有的AngularJS/nginx项目与新创建的Django项目合并在一起

我最终使用了FastCGI,尽管Django对它的支持很快就会被弃用,但它仍然有效。这(写得有点糟糕,但确实有帮助)帮助了我

主要行动是:

  • 确保安装了
    flup
    pip安装flup
  • 编辑nginx.conf,如教程所示:

    location / {    
    # host and port to fastcgi server
    fastcgi_pass 127.0.0.1:<port nr>;
    fastcgi_pass_header Authorization; 
    fastcgi_hide_header X-Accel-Redirect;
    fastcgi_hide_header X-Sendfile;
    fastcgi_pass_header Authorization;
    fastcgi_intercept_errors    off;
    fastcgi_param       CONTENT_LENGTH  $content_length;
    fastcgi_param       CONTENT_TYPE    $content_type;
    fastcgi_param       PATH_INFO       $fastcgi_script_name;
    fastcgi_param       QUERY_STRING    $query_string;
    fastcgi_param       REMOTE_ADDR     $remote_addr;
    fastcgi_param       REQUEST_METHOD  $request_method;
    fastcgi_param       REQUEST_URI     $request_uri;
    fastcgi_param       SERVER_NAME     $server_name;
    fastcgi_param       SERVER_PORT     $server_port;
    fastcgi_param       SERVER_PROTOCOL $server_protocol;
    }
    
    location/{
    #fastcgi服务器的主机和端口
    fastcgi_通行证127.0.0.1:;
    fastcgi_pass_头授权;
    快速CGI_隐藏_标题X-Accel-Redirect;
    fastcgi_隐藏_头X-Sendfile;
    fastcgi_pass_头授权;
    fastcgi_截获_错误关闭;
    fastcgi_参数CONTENT_LENGTH$CONTENT_LENGTH;
    fastcgi_参数内容类型$CONTENT_类型;
    fastcgi_参数路径_信息$fastcgi_脚本_名称;
    fastcgi_参数查询字符串$QUERY_字符串;
    fastcgi参数远程地址$REMOTE地址;
    fastcgi_参数请求_方法$REQUEST_方法;
    fastcgi_param REQUEST_URI$REQUEST_URI;
    fastcgi_参数服务器名称$服务器名称;
    fastcgi_参数服务器_端口$SERVER_端口;
    fastcgi_参数服务器协议$服务器协议;
    }
    
  • 然后使用fcgi运行Django项目,端口与上面在.conf
    python manage.py runfcgi method=threaded host=127.0.0.1 port=

为我工作。

如果你没有像我一样的理由真正想使用nginx,我建议你使用
mod_wsgi+Apache
webserver方法,它可能会让你的生活变得更轻松。

在Django1.9+之后,通过runfcgi管理命令的FastCGI支持被删除。 因此,您必须使用旧版本的django,或者使用mod_wsgi+apache

如果您只想开发django代码,那么只需将nginx.conf addproxy\u pass编辑到location选项中即可。例如:

    location /api/ {
        proxy_pass http://127.0.0.1:8000; 
    }

    location /static/ {
        proxy_pass http://127.0.0.1:8000; 
    }

您能否提供一个文档,其中提供了部署django项目的详细信息,因为我无法使用apache和mod_wsgi来完成这项工作。“最佳方式”-目前在windows上运行python制作的网站的唯一可用方式,而无需编译源代码。对于一台虚拟机来说,试过了,它是完全不可靠的(那些“关键”的windows更新,多次致命地敲击我的virtualbox实例,不再有趣)。最好的推荐,扔掉Windows-它不能很好地与nux世界的任何东西配合使用。理论上可能是这样。但是没有…在Windows上,mod_wsgi+Apache不允许配置进程数。对于Python(拥有GIL)来说,这是严重的性能限制。