如何在Windows机器上运行django与nginx?

Aka*_*nde 7 django nginx

我有一个django项目.我已经安装了nginx服务器.我想在Windows机器上运行nginx和django.我试过几个博客Nginx Django Uwsgi.但所有这些都需要uwsgi.但uwsgi没有在Windows上安装并给出"uname"错误.有没有办法在Windows上安装和运行nginx和django?任何指针将非常有帮助谢谢.

rob*_*rto 7

最好的方式(恕我直言)正在使用apache + mod_wsgi.uWSGI和Gunicorn都不是Windows友好的(虽然uWSGI有cygwin支持,所以你最终可以尝试它[如果你足够勇敢]).

另一种方法是在windows机器上安装linux vm(virtualbox,vmware ...)来托管你的应用程序和从本地IIS到虚拟系统的代理请求.


Flu*_*ppe 6

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

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

我最终使用了 FastCGI,尽管 Django 对它的支持很快就会被弃用,但它仍然有效。这个(有点写得不好,但确实有帮助)教程帮助我解决了这个问题。

主要行动是:

  • 确保flup已安装 ( pip install 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;
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 然后用 fcgi 运行你的 Django 项目,端口与上面 .conf 中看到的相同 python manage.py runfcgi method=threaded host=127.0.0.1 port=<port nr>

为我工作。
如果您没有像我这样真正想使用 nginx 的任何理由,我建议您采用mod_wsgi + Apache网络服务器方法,它可能会让您的生活更轻松。