博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django项目在nginx上面的部署(django+flup+nginx)
阅读量:5223 次
发布时间:2019-06-14

本文共 2755 字,大约阅读时间需要 9 分钟。

首先说下需要用到的软件

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,

都安装好之后,就可以来配置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       80;        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.6/site-packages/django/contrib/admin;                expires 30d;                break;        }        location / {                fastcgi_pass unix:/tmp/python.sock;                #如果上面是采用端口的启动则                #fastcgi_pass 127.0.0.1:9001;                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的项目啦。

转载于:https://www.cnblogs.com/stubborn412/p/3938125.html

你可能感兴趣的文章
Python(软件目录结构规范)
查看>>
Windows多线程入门のCreateThread与_beginthreadex本质区别(转)
查看>>
Nginx配置文件(nginx.conf)配置详解1
查看>>
linux php编译安装
查看>>
Ext Gantt Web甘特图--高级应用
查看>>
name phone email正则表达式
查看>>
721. Accounts Merge
查看>>
HTTP 状态码
查看>>
一位良心发现的交易员自述:我们是怎么玩弄散户的
查看>>
Java反射-中级知识掌握
查看>>
ASP.NET 2.0防止同一用户同时登陆
查看>>
Java的泛型反射
查看>>
ES插件升级
查看>>
test
查看>>
35 个有用的弹出窗口对话框
查看>>
使用MongoDB存储集合的一些问题
查看>>
#leetcode刷题之路23-合并K个排序链表
查看>>
codevs3145 汉诺塔问题
查看>>
bzoj千题计划205:bzoj3529: [Sdoi2014]数表
查看>>
python 参数解构
查看>>