django项目的发布

来源:互联网 发布:论坛抢楼软件 编辑:程序博客网 时间:2024/05/18 16:13

先前写了django项目开发所需的环境,项目写完了,那就要发布了,那发布的步骤是什么呢?

项目发布有很多部署模式,我这里采用django + uwsgi + nginx的部署模式。

先来认识几个软件:

django:一个开放源代码的Web应用框架,由Python写成,采用了MVC的软件设计模式。可以用pip安装。

uWSGI:一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。

那有了uWSGI为什么还需要nginx?

nginx:具备优秀的静态内容处理能力,然后将动态内容转发给uWSGI服务器,这样可以达到很好的客户端响应。

(1)uWSGI的安装:(强烈建议用pip安装,因为pip带了隔离环境virtualenv)

  source ../env/bin/activate

  pip install uwsgi

或者:

wget http://projects.unbit.it/downloads/uwsgi-1.4.4.tar.gz
tar -zxvf uwsgi-1.4.4.tar.gz
cd uwsgi-1.4.4
make
cp uwsgi /usr/bin

(2)nginx的安装:

一般用源码编译安装Nginx,都需要先安装pcre\zlib等外部支持程序,然后配置安装nginx时候这些外部程序的源码的路径,这样Nginx在每次启动的时候,就会动态地去加载这些东西了。后面是否对这些外部程序单独编译,自己决定,不编译影响不大。

安装PCRE外部程序

  1. cd /root/install
  2. wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.30.tar.gz
  3. tar -zxvf pcre-8.30.tar.gz
  4. cd pcre-8.30
  5. ./configure --prefix=/usr/local/pcre8.30
  6. make && make install

安装OPENSSL外部程序

  1. cd /root/install
  2. wget http://www.openssl.org/source/openssl-1.0.0a.tar.gz
  3. tar -zxvf openssl-1.0.0a.tar.gz
  4. cd openssl-1.0.0a
  5. ./config --prefix=/usr/local/openssl1.0.0
  6. make && make install

安装ZLIB外部程序
  1. cd /root/install
  2. wget http://www.zlib.net/zlib-1.2.7.tar.bz2
  3. tar -jxvf zlib-1.2.7.tar.bz2
  4. cd zlib-1.2.7
  5. ./configure --prefix=/usr/local/zlib1.2.7
6. make && make install

最后安装NGINX

  1. cd /root/install
  2. wget http://nginx.org/download/nginx-1.0.15.tar.gz
  3. tar -zxvf nginx-1.0.15.tar.gz
  4. cd nginx-1.0.15
  5. ./configure --prefix=/usr/local/nginx --with-http_sub_module --with-pcre=/root/install/pcre-8.30
  6. make && make install

7.检查是否安装成功

         cd  /usr/local/nginx/sbin

         ./nginx -t 

         结果显示:

        nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

        nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

   8.启动nginx 

          cd  /usr/local/nginx/sbin 目录下面 输入 ./nginx 启动 nginx

   9检查是否启动成功

          curl http://192.168.15.132