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