我有一个django项目。我已经安装了nginx服务器。我想在Windows机器上运行nginx和django。我试过几个博客Nginx Django Uwsgi。但所有这些都需要uwsgi。但uwsgi没有在Windows上安装并给出“uname”错误。有没有办法在Windows上安装和运行nginx和django?任何指针将非常有帮助谢谢。
答案 0 :(得分:5)
最佳方式(恕我直言)正在使用apache + mod_wsgi。 uWSGI和Gunicorn都不是Windows友好的(虽然uWSGI有cygwin支持,所以你最终可以试试[如果你足够勇敢])。
另一种方法是在Windows机器上安装linux vm(virtualbox,vmware ...)来托管你的应用程序和从本地IIS到虚拟系统的代理请求。
答案 1 :(得分:3)
这个问题来自一年前,但我会为其他人寻找解决他们的Windows Django / nginx问题的答案。
因为uWSGI显然不是Windows的选项(忘记cygwin /虚拟环境)。我不想去mod_wsgi + Apache
,因为我必须将现有的AngularJS / nginx项目与我新创建的Django项目合并。
我最终使用了FastCGI,尽管Django对它的支持很快就会被弃用,但它仍然有效。这(写得有些糟糕,但确实有帮助)tutorial帮助了我。
关键行动是:
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;
}
然后使用fcgi运行您的Django项目,其端口与上面.conf python manage.py runfcgi method=threaded host=127.0.0.1 port=<port nr>
为我工作。
如果你没有任何我真正想要使用nginx的理由,我建议采用mod_wsgi + Apache
网络服务器方法,它可能会让你的生活更轻松。
答案 2 :(得分:1)
您可以尝试使用Helicon Zoo在IIS 7+的Windows机器上运行Django应用程序。 Helicon动物园稳定且可以投入生产。
答案 3 :(得分:0)
在Django1.9 +之后,通过runfcgi管理命令的 FastCGI支持被删除。 所以你必须使用旧版本的django,或者使用mod_wsgi + apache。
如果您只想开发django代码,那么您只需编辑nginx.conf即可将 proxy_pass http://127.0.0.1:8000 添加到location选项中。例如:
location /api/ {
proxy_pass http://127.0.0.1:8000;
}
location /static/ {
proxy_pass http://127.0.0.1:8000;
}