Windows系统下使用flup搭建Nginx和Python环境的方法


Posted in Python onDecember 25, 2015

首先确保你的电脑里已经安装了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\(目录可自己选择,这里只做个演示)然后用python setup.py install 命令

安装flup,接着就要配置nginx了,打开C:\nginx\conf\nginx.conf,我的配置文件如下,大家可根据需要自行修改:

#user nobody; 
worker_processes 1; 
 
#error_log logs/error.log; 
#error_log logs/error.log notice; 
#error_log logs/error.log info; 
 
#pid    logs/nginx.pid; 
 
 
events { 
  worker_connections 1024; 
} 
 
 
http { 
  include    mime.types; 
  default_type application/octet-stream; 
 
  #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
  #         '$status $body_bytes_sent "$http_referer" ' 
  #         '"$http_user_agent" "$http_x_forwarded_for"'; 
 
  #access_log logs/access.log main; 
 
  sendfile    on; 
  #tcp_nopush   on; 
 
  #keepalive_timeout 0; 
  keepalive_timeout 65; 
 
  #gzip on; 
 
  server { 
    listen    80; 
    server_name localhost; 
 
    #charset koi8-r; 
 
    #access_log logs/host.access.log main; 
 
    location / { 
      root  html; 
      index index.html index.htm; 
    } 
 
    #error_page 404       /404.html; 
 
    # redirect server error pages to the static page /50x.html 
    # 
    error_page  500 502 503 504 /50x.html; 
    location = /50x.html { 
      root  html; 
    } 
 
    # proxy the PHP scripts to Apache listening on 127.0.0.1:80 
    # 
    #location ~ \.php$ { 
    #  proxy_pass  http://127.0.0.1; 
    #} 
 
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
    # 
    #location ~ \.php$ { 
    #  root      html; 
    #  fastcgi_pass  127.0.0.1:9000; 
    #  fastcgi_index index.php; 
    #  fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 
    #  include    fastcgi_params; 
    #} 
 
    # deny access to .htaccess files, if Apache's document root 
    # concurs with nginx's one 
    # 
    #location ~ /\.ht { 
    #  deny all; 
    #} 
     
    # 静态资源 
    location ~* ^.+\.(html|jpg|jpeg|gif|png|ico|css|js)$ 
    { 
      root e:/gin/gin/; 
      expires 30d; 
      break; 
    } 
 
    location ~ ^/static/ { 
      root e:/gin/gin/; 
      expires 30d; 
      break; 
    }  
 
    location ~ ^/ { 
      # 指定 fastcgi 的主机和端口 
      fastcgi_pass 127.0.0.1:8051; 
      fastcgi_param PATH_INFO $fastcgi_script_name; 
      fastcgi_param REQUEST_METHOD $request_method; 
      fastcgi_param QUERY_STRING $query_string; 
      fastcgi_param CONTENT_TYPE $content_type; 
      fastcgi_param CONTENT_LENGTH $content_length; 
      fastcgi_param SERVER_PROTOCOL $server_protocol; 
      fastcgi_param SERVER_PORT $server_port; 
      fastcgi_param SERVER_NAME $server_name; 
      fastcgi_pass_header Authorization; 
      fastcgi_intercept_errors off; 
    } 
  } 
 
  # another virtual host using mix of IP-, name-, and port-based configuration 
  # 
  #server { 
  #  listen    8000; 
  #  listen    somename:8080; 
  #  server_name somename alias another.alias; 
 
  #  location / { 
  #    root  html; 
  #    index index.html index.htm; 
  #  } 
  #} 
 
 
  # HTTPS server 
  # 
  #server { 
  #  listen    443; 
  #  server_name localhost; 
 
  #  ssl         on; 
  #  ssl_certificate   cert.pem; 
  #  ssl_certificate_key cert.key; 
 
  #  ssl_session_timeout 5m; 
 
  #  ssl_protocols SSLv2 SSLv3 TLSv1; 
  #  ssl_ciphers HIGH:!aNULL:!MD5; 
  #  ssl_prefer_server_ciphers  on; 
 
  #  location / { 
  #    root  html; 
  #    index index.html index.htm; 
  #  } 
  #} 
 
}

需要注意的是,对于不需要url rewrite的目录,比如存放css和图片的目录,需要在配置文件里指明,否则将无法访问这些文件

location ~ ^/static/ {
      root e:/gin/gin/;
      expires 30d;
      break;
    }

最后一步就是运行nginx服务器,并且用FastCGI运行你的Django项目了
进入nginx的目录:

cd c:\nginx\
  start nginx

然后在浏览器里访问http://loaclhost/ 就应该可以看到nginx的欢迎界面了。最后进入你的Django项目的根目录,然后用一下命令来运行服务器:

python manage.py runfcgi method=threaded host=127.0.0.1 port=8051

刷新localhost页面,你就能看到你的项目主页啦~~
补充一点windwos下nginx操作的命令(来自官方文档)

nginx -s stop quick exit
nginx -s quit graceful quit
nginx -s reload changing configuration, starting a new worker, quitting an old worker gracefully
nginx -s reopen reopening log files

大功告成,开始django之旅,ohye!!!

Python 相关文章推荐
python通过scapy获取局域网所有主机mac地址示例
May 04 Python
Python中的Numeric包和Numarray包使用教程
Apr 13 Python
详解Python中的静态方法与类成员方法
Feb 28 Python
Python模块文件结构代码详解
Feb 03 Python
基于DataFrame改变列类型的方法
Jul 25 Python
Python 实现数据结构-堆栈和队列的操作方法
Jul 17 Python
python+logging+yaml实现日志分割
Jul 22 Python
python字符串分割及字符串的一些常规方法
Jul 24 Python
PyQt Qt Designer工具的布局管理详解
Aug 07 Python
pytorch中的上采样以及各种反操作,求逆操作详解
Jan 03 Python
浅谈pytorch、cuda、python的版本对齐问题
Jan 15 Python
python 对象真假值的实例(哪些视为False)
Dec 11 Python
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
Dec 25 #Python
Linux系统上Nginx+Python的web.py与Django框架环境
Dec 25 #Python
Linux下将Python的Django项目部署到Apache服务器
Dec 24 #Python
在Linux系统上部署Apache+Python+Django+MySQL环境
Dec 24 #Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
Dec 24 #Python
在Mac OS上搭建Python的开发环境
Dec 24 #Python
详解Python字符串对象的实现
Dec 24 #Python
You might like
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
2013/07/18 PHP
php解析base64数据生成图片的方法
2016/12/06 PHP
PJBlog插件 防刷新的在线播放器
2006/10/25 Javascript
jquery 双色表格实现代码
2009/12/08 Javascript
JavaScript入门之对象与JSON详解
2011/10/21 Javascript
JavaScript中document对象使用详解
2015/01/06 Javascript
jQuery提示插件alertify使用指南
2015/04/21 Javascript
JavaScript的jQuery库中function的存在和参数问题
2015/08/13 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
2016/06/23 Javascript
JavaScript编写一个简易购物车功能
2016/09/17 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
深入理解Node.js中通用基础设计模式
2017/09/19 Javascript
详解vue-cli3开发Chrome插件实践
2019/05/29 Javascript
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
Python ldap实现登录实例代码
2016/09/30 Python
Python内置函数OCT详解
2016/11/09 Python
详解Python函数式编程—高阶函数
2019/03/29 Python
基于Python的PIL库学习详解
2019/05/10 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
2019/12/13 Python
python爬取代理IP并进行有效的IP测试实现
2020/10/09 Python
python 实现数据库中数据添加、查询与更新的示例代码
2020/12/07 Python
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
大学毕业生通用求职信
2013/09/28 职场文书
制衣厂各岗位职责
2013/12/02 职场文书
计算机专业自荐信范文
2014/05/28 职场文书
电子商务专业求职信
2014/07/10 职场文书
缓刑人员思想汇报
2014/10/11 职场文书
买卖合同协议书范本
2014/10/18 职场文书
区域经理岗位职责
2015/02/02 职场文书
商务代表岗位职责
2015/02/15 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
老人节主持词
2015/07/04 职场文书
入党积极分子培养联系人意见
2015/08/12 职场文书
JavaGUI模仿QQ聊天功能完整版
2021/07/04 Java/Android
Zabbix对Kafka topic积压数据监控的问题(bug优化)
2022/07/07 Servers