首先说下需要用到的软件
1、python环境
因为我用的centos6.2 上面自带了python2.6.6的环境。所以就可以不用安装了。
2、Django环境
我们这里用easy_install的方式来安装,因为后面装其他关于python的都可以用到。当然你可以下载源码编译安装,都行。
首先用yum安装easy_install

yum -y install python-setuptools

安装完成后,用easy_install来安装django

easy_install "django==1.4.5"

3、flup
flup: 一个用python写的web server,也就是cgi中所谓的Server/Gateway,它负责接受apache/nginx转发的请求,并调用你写的程序 (application),并将application处理的结果返回到apache/nginx.
安装flup

easy_install flup

虽说django自带一个开发用的服务器。
manage.py runserver。可以结合nginx部署一个web站点,但是这个开发的服务器必然没有python的web服务器flup专业.

4、nginx安装
可以参考我以前的博文来安装nginx,http://www.linuxyan.com/web-server/32.html

都安装好之后,就可以来配置flup和nginx了。

首先启动flup,到自己的django目录下。
一种是用sock来通信的:python manage.py runfcgi socket=/tmp/python.sock maxrequests=1
一种是用监听端口来通信的:python manage.py runfcgi method=prefork host=127.0.0.1 port=9001
用sock启动的,可以用
ll /tmp/python.sock
来查看sock文件是否成功生成,还有就是注意sock文件权限是否正确。如果访问出现502,就有可能是sock文件的权限问题。

如果用端口来启动的。可以用
netstat -tnlp
来查看9001端口是否处于监听状态。

启动之后,配置nginx的server段

server {
listen ;
server_name www.linuxyan.com;
root /var/www/html/djangodemo; access_log /var/log/nginx/log/python.access.log;
error_log /var/log/nginx/log/python.error.log; #配置django admin需要的文件(如果启用的django的admin功能)
location ~* ^/media/(css|img|js)/.*$ {
root /usr/local/lib/python2./site-packages/django/contrib/admin;
expires 30d;
break;
}
location / {
fastcgi_pass unix:/tmp/python.sock;
#如果上面是采用端口的启动则
#fastcgi_pass 127.0.0.1:;
fastcgi_pass_header Authorization;
fastcgi_intercept_errors off;
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_PORT $server_port;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_SOFTWARE "nginx";
fastcgi_param GATEWAY_INTERFACE "CGI/1.1";
}
}
之后,就可以通过域名访问django的项目啦。

Django项目在nginx上面的部署(django+flup+nginx)的更多相关文章

  1. Nginx 和 Gunicorn 部署 Django项目

    目录 Nginx 和 Gunicorn 部署 Django项目 配置Nginx 安装配置Gunicorn 通过命令行直接启动 Gunicorn 与 uwsgi 的区别,用哪个好呢 Gunicorn u ...

  2. ubuntu NGINX uwsgi https 部署Django 遇到的问题

    搞了3天终于把Django成功部署到Ubuntu,记录一下: 引用来自泡泡茶壶: Ubuntu下的Nginx + Uwsgi + Django项目部署详细流程 前提说明: Django作为小程序的后端 ...

  3. sringboot项目在tomcat上的部署

    sringboot项目在tomcat上的部署原文链接: https://blog.csdn.net/zhaoyahui_666/article/details/78283559#comments 20 ...

  4. ubuntu服务器上用Nginx和Uwsgi部署django项目

    开发环境:ubuntu系统,python3环境 django项目目录: fast_foot 为项目根目录,app为项目应用 现在,我们登陆远程服务器 安装Nginx 安装好了,我们看一下nginx的配 ...

  5. linux上使用nginx、uwsgi部署django项目

    参考:CentOS7下部署Django项目详细操作步骤 注意事项: 在虚拟环境中操作,虚拟环境中安装nginx.uwsgi,虚拟环境外需安装uwsgi -- 临时关闭防火墙:systemctl sto ...

  6. Nginx+uWSGI+Django+Python在Linux上的部署

    搞了一整天,终于以发现自己访问网络的端口是错误的结束了. 首先要安装Nginx,uWSGI,Django,Python,这些都可以再网上查到. 安装好后可以用 whereis 命令查看是否安装好了各种 ...

  7. 给我一台全新的服务器,使用nginx+gunicorn+supervisor部署django

    0.准备工作 在一台全新的服务器中新建用户以及用户的工作目录,之后的操作都以这个用户的身份进行,而不是直接用root. 举个栗子: 在服务器下新建用户rinka并赋予sudo权限 1) root登陆, ...

  8. 使用 Nginx 和 Gunicorn 部署 Django 博客(转)

    原文:http://zmrenwu.com/post/20/  http://www.siar.me/post/9/ 针对很多朋友反映按照教程的做法始终只能看到 Nginx 欢迎页面的问题,Tian ...

  9. Nginx+uWsgi生产部署Django

    部署得过程很简单,部署得核心在于,为什么要这样做,每一个参数代表什么意思,最终的目的是得了解,一些基概念性的东西. uWsgi简介 说Uwsgi之前,先说一下Wsgi. 什么是Wsgi? WSGI: ...

随机推荐

  1. 循环节计算---用到find函数

    #include <iostream> #include <algorithm> #include <vector> using namespace std; in ...

  2. Oracle Explain plan 使用总结

    Oracle Explain plan使用总结    写多了SQL语句,伴随着数据量的海增,总会遇到性能的问题.在Oracle领域一个不好的习惯,一旦遇到性能问题就推给DBA来做.长期如此,反而对DB ...

  3. TypeScript Visitor设计模式

    以下翻译脑袋的VBF项目,试试看TypeScript能否重写. class RegExpr {     Accept<T>(convert: Converter<T>) {   ...

  4. SWT将系统图标保存为本地文件

    public class SWTImage {     public static void main(String[] args) {         final Display display = ...

  5. list<> 中find的使用

    昨天要在 std::list<std::string> 中判断是否存在某一字符串 std::string . 我首先想到的是 list迭代+std::string重载的"==&q ...

  6. FireFox插件FirePHP调试PHP

    如果你和我一样,你会在开发网页项目时候完全无法离开FireBug.这个小巧的"臭虫"是一个神奇而有用的HTML/CSS/JavaScript/Ajax调试器.但是你也许不知道这个还 ...

  7. C++ 类模板四(typename关键字)

  8. pycharm重置设置,恢复默认设置

    备忘,备忘,备忘 window 系统 找到下方目录-->删除. 再重新打开pycharm # Windows Vista, 7, 8, 10: <SYSTEM DRIVE>\User ...

  9. 从thinkphp到php到ajax

    因为thinkphp的ajax非常麻烦,所以采用了php辅助,辅助的过程必然要只有一个连接字符串,但是却不能异步了 如果单独的在页面写连接字符串,不引用,那么页面又返回正常

  10. 第二百二十节,jQuery EasyUI,Slider(滑动条)组件

    jQuery EasyUI,Slider(滑动条)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 Slider(滑动条)组件的使用方法,这个 ...