Windows系统下使用flup搭建Nginx和Python环境的方法
首先确保你的电脑里已经安装了Python和Django,接下来我们还需要两个组件,nginx服务器和flup(Python的FastCGI组件)
nginx下载地址:http://nginx.org/en/download.html
flup下载地址:http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz
与Linux下不同的是,nginx在windows下是以一个应用程序的方式运行,而不是以一个服务运行(难怪没人在windows服务器上用nginx)
把刚刚下载好的两个压缩包都解压到C:\nginx\,C:\flup\(目录可自己选择,这里只做个演示)然后用pythonsetup.pyinstall命令
安装flup,接着就要配置nginx了,打开C:\nginx\conf\nginx.conf,我的配置文件如下,大家可根据需要自行修改:
#usernobody;
worker_processes1;
#error_loglogs/error.log;
#error_loglogs/error.lognotice;
#error_loglogs/error.loginfo;
#pidlogs/nginx.pid;
events{
worker_connections1024;
}
http{
includemime.types;
default_typeapplication/octet-stream;
#log_formatmain'$remote_addr-$remote_user[$time_local]"$request"'
#'$status$body_bytes_sent"$http_referer"'
#'"$http_user_agent""$http_x_forwarded_for"';
#access_loglogs/access.logmain;
sendfileon;
#tcp_nopushon;
#keepalive_timeout0;
keepalive_timeout65;
#gzipon;
server{
listen80;
server_namelocalhost;
#charsetkoi8-r;
#access_loglogs/host.access.logmain;
location/{
roothtml;
indexindex.htmlindex.htm;
}
#error_page404/404.html;
#redirectservererrorpagestothestaticpage/50x.html
#
error_page500502503504/50x.html;
location=/50x.html{
roothtml;
}
#proxythePHPscriptstoApachelisteningon127.0.0.1:80
#
#location~\.php${
#proxy_passhttp://127.0.0.1;
#}
#passthePHPscriptstoFastCGIserverlisteningon127.0.0.1:9000
#
#location~\.php${
#roothtml;
#fastcgi_pass127.0.0.1:9000;
#fastcgi_indexindex.php;
#fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name;
#includefastcgi_params;
#}
#denyaccessto.htaccessfiles,ifApache'sdocumentroot
#concurswithnginx'sone
#
#location~/\.ht{
#denyall;
#}
#静态资源
location~*^.+\.(html|jpg|jpeg|gif|png|ico|css|js)$
{
roote:/gin/gin/;
expires30d;
break;
}
location~^/static/{
roote:/gin/gin/;
expires30d;
break;
}
location~^/{
#指定fastcgi的主机和端口
fastcgi_pass127.0.0.1:8051;
fastcgi_paramPATH_INFO$fastcgi_script_name;
fastcgi_paramREQUEST_METHOD$request_method;
fastcgi_paramQUERY_STRING$query_string;
fastcgi_paramCONTENT_TYPE$content_type;
fastcgi_paramCONTENT_LENGTH$content_length;
fastcgi_paramSERVER_PROTOCOL$server_protocol;
fastcgi_paramSERVER_PORT$server_port;
fastcgi_paramSERVER_NAME$server_name;
fastcgi_pass_headerAuthorization;
fastcgi_intercept_errorsoff;
}
}
#anothervirtualhostusingmixofIP-,name-,andport-basedconfiguration
#
#server{
#listen8000;
#listensomename:8080;
#server_namesomenamealiasanother.alias;
#location/{
#roothtml;
#indexindex.htmlindex.htm;
#}
#}
#HTTPSserver
#
#server{
#listen443;
#server_namelocalhost;
#sslon;
#ssl_certificatecert.pem;
#ssl_certificate_keycert.key;
#ssl_session_timeout5m;
#ssl_protocolsSSLv2SSLv3TLSv1;
#ssl_ciphersHIGH:!aNULL:!MD5;
#ssl_prefer_server_cipherson;
#location/{
#roothtml;
#indexindex.htmlindex.htm;
#}
#}
}
需要注意的是,对于不需要urlrewrite的目录,比如存放css和图片的目录,需要在配置文件里指明,否则将无法访问这些文件
location~^/static/{
roote:/gin/gin/;
expires30d;
break;
}
最后一步就是运行nginx服务器,并且用FastCGI运行你的Django项目了
进入nginx的目录:
cdc:\nginx\ startnginx
然后在浏览器里访问http://loaclhost/就应该可以看到nginx的欢迎界面了。最后进入你的Django项目的根目录,然后用一下命令来运行服务器:
pythonmanage.pyrunfcgimethod=threadedhost=127.0.0.1port=8051
刷新localhost页面,你就能看到你的项目主页啦~~
补充一点windwos下nginx操作的命令(来自官方文档)
nginx-sstopquickexit nginx-squitgracefulquit nginx-sreloadchangingconfiguration,startinganewworker,quittinganoldworkergracefully nginx-sreopenreopeninglogfiles
大功告成,开始django之旅,ohye!!!