使用fastcgi部署django应用
1.fastcgi和cgi的区别
1)CGI (Common Gateway Interface):
用来作为 Web Server 同 Python, PHP 等的通信手段。而在静态网页的时代, 只需要 Web Server 即可。
2)CGI 的缺点:
1. 每个请求都会产生一个对应的 gateway application 进程。从一个请求到另一个请求, 内存和上下文信息会丢失。无法 cache 来提高效率。
2. 大负载能力不足。对系统而言,启动一个进程非常耗资源。大量的并发请求(每个请求启动一个进程)会瞬间搞跨服务器。
3. 将 web server, gateway application 部署到不同服务器上的愿望难以实现。
3)FastCGI (Fast Common Gateway Interface):
同 CGI 一样都是一个协议, 而不是一个具体实现。
4)FastCGI 相对于 CGI 的改进:
反复重用一个进程来处理多个请求, 而不是每个请求产生一个进程。
2.安装和使用
1)安装python-flup
easy_install python-flup
2)使用fastcgi方式启动django应用
python manage.py runfcgi method=prefork host=127.0.0.1 port=9000 pidfile=/var/run/django.pid
runfcgi 的重点参数介绍:
method:
prefork or threaded (default prefork)
prefork 内存占用量大, threaded 内存需要量小。
prefork 在超大负载是仍然可以很好的工作, threaded 在大负载时常常无法响应。
prefork 相当于使用 进程处理每个请求, 而 threaded 是每个子进程再产生一定量的线程来处理请求。
pidfile:
把进程ID写入到指定的文件中。
3)Nginx的配置:
location / {
root html;
index index.html index.htm;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param REMOTE_ADDR $remote_addr;
}
location /static{
alias /Application/ownforum/media;
}
修改完之后需要 reload nginx:
4)重启nginx
/usr/local/nginx/sbin/nginx -s reload
使用fastcgi部署django应用的更多相关文章
- Nginx+uWSGI或fastcgi部署Django项目
nginx+uWSGI ubuntu下先安装下C编译器和Python环境: sudo apt-get install build-essential python-dev 使用pip安装uWSGI: ...
- 第十二章: 部署Django
本章包含创建一个django程序最必不可少的步骤 在服务器上部署它 如果你一直跟着我们的例子做,你可能正在用runserver 但是runserver 要部署你的django程序,你需要挂接到工业用的 ...
- [django]用fastcgi部署
django官方已经开始弃用fastcgi来部署django应用了,作为以前使用过的用户,还是贴一个配置,用来做纪念吧.. 项目下 #! /bin/sh case "$@" in ...
- 跨过Nginx上基于uWSGI部署Django项目的坑
先说说他们的关系,Nginx和uWSGI都是Web服务器,Nginx负责静态内容,uWSGI负责Python这样的动态内容,二者配合共同提供Web服务以实现提高效率和负载均衡等目的.uWSGI实现了多 ...
- 如何一步步在生产环境上部署django和vue
本文由云+社区发表 本文主要讲述了如何一步步在生产环境上部署django和vue,操作系统默认为centos 说明:后文中出现的以下字符串均表示具体的路径或者名称,含义如下: DJANGO_DIR-- ...
- 部署 Django
补充说明:关于项目部署,历来是开发和运维人员的痛点.造成部署困难的主要原因之一是大家的Linux环境不同,这包括发行版.解释器.插件.运行库.配置.版本级别等等太多太多的细节.因此,一个成功的部署案例 ...
- django “如何”系列6:如何部署django
django满满的快捷方法是的web开发者活的更轻松,但是,如果你不能部署你的站点的话,这是一点用都没有的.不违初衷,部署的简化也是django的一大目标.你可以有几个方法轻松的部署django 由于 ...
- Windows server iis部署Django详细操作
教程基于Windows server2012+Python3.6+IIS之上部署django的,同样适用于server2012之上的版本服务器和windows7以上的windows操作系统. 文章来自 ...
- Windows的 IIS 部署django项目
Windows的 IIS 部署django项目 1.安装Windows的IIS 功能(win10为例): (1)进入控制面板 :选择大图标 进入程序和功能 (2)启用或者关闭Windows功能 ...
随机推荐
- Java创建Excel-DEMO
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.Out ...
- 努比亚 Z17 mini s (Nubia NX589J) 解锁BootLoader 并刷入recovery ROOT
首先下载好工具链接:链接:https://pan.baidu.com/s/1gher4T9 密码:rypn 备用下载链接:https://pan.baidu.com/s/1nxdzt9Z 本篇教程教你 ...
- JavaScript特效之图片特效放大,缩小,旋转
效果图如下: 效果代码如下: <!doctype html> <html lang="en"> <head> <meta charset= ...
- 【Bootstrap】如何让响应式图片(img-responsive)水平居中
我们在用bootstrap排版内容的时候,有的时候在内容中需要图片水平居中对齐. 一般情况下,我们的图片都使用了 .img-responsive 类来实现响应式图片.如果需要实现响应式图片水平居中,那 ...
- coredata示意图
NSPersistentStoreCoordinator(Persistent Store Coordinator),缩写为PSC:存储信息+结构信息(MOM) NSManagedObjectMode ...
- Day 22 面向对象编程
面向对象基础 面向对象编程(抽象) 对象:特征和技能的结合体 面向对象编程:一个个对象进行交互 优点:扩展性非常强 缺点:逻辑非常复杂 类与对象 类(类别):一系列具有相同特征和技能的对象 现实世界中 ...
- Hzoi 2018.2.11多边形 区间DP
给定一个由N个顶点构成的多边形,每个顶点被赋予一个整数值,而每条边则被赋予一个符号:+(加法运算)或者*(乘法运算),所有边依次用整数1到N标识. 一个多边形的图形表示 首次移动,允许将某条边删除: ...
- EasyUI 解决Js动态加载页面样式不显示问题
var strHtml = "<input name='mydate' class='easyui-datebox'>"; 直接使用append把内容加载到页面中,Ea ...
- C#第十二节课
数组 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Th ...
- [Ynoi2015]纵使日薄西山
题目大意: 给定一个序列,每次单点修改,然后进行询问. 定义一次操作为,选择一个位置$x$,将这个位置的数和左边.右边两个位置的数(不存在则忽略)各减去1,然后和0取max. 对序列中最大的位置进行一 ...