zoukankan      html  css  js  c++  java
  • Nginx+Uwsgi部署Django项目

    下载uwsgi

    下载flup (貌似不装也可以)

    下载django

    2. 安装

    flup和django   都是用 python setup.py install

    uwsgi安装

    1.cd  uwsgi-0.9.6.8
    2.python uwsgiconfig.py --build
    3.cd nginx
    4.cp uwsgi_params /usr/local/nginx/conf/

    3. 建立项目目录

    1.cd /root
    2.django-admin.py startproject  my_django

    在my_django目录下 vi uwsgi.xml

    01.<uwsgi>
    02.<socket>0.0.0.0:8000</socket>
    03.<listen>20</listen>
    04.<master>true</master>
    05.<pidfile>/usr/local/nginx/uwsgi.pid</pidfile>
    06.<processes>2</processes>
    07.<module>django_wsgi</module>  #这个文件下面要建立
    08.<pythonpath>/root/my_django</pythonpath>   #刚才建立项目的路径
    09.<profiler>true</profiler>
    10.<memory-report>true</memory-report>
    11.<enable-threads>true</enable-threads>
    12.<logdate>true</logdate>
    13.<limit-as>6048</limit-as>
    14.</uwsgi>

    同样的 vi django_wsgi.py

    1.import os
    2.import django.core.handlers.wsgi
    3.os.environ['DJANGO_SETTINGS_MODULE'] = 'my_django.settings'    #这里的my_django.settings 表示 "项目名.settings"
    4.application = django.core.handlers.wsgi.WSGIHandler()

    4. 添加nginx配置

    01.server {
    02.listen  80;
    03.server_name 192.168.0.100;
    04. 
    05.location / {
    06.root /root/my_django;
    07.uwsgi_pass   127.0.0.1:8000;
    08.include     uwsgi_params;
    09.access_log  off;  }
    10. 
    11.}

    5. 启动服务

    1.#/usr/bin/uwsgi -x /root/my_django/uwsgi.xml
    2.#/usr/local/nginx/sbin/nginx

    //=======================================

    附:

    如果nginx出现无法找到uwsgi_pass的话, 升级nginx到0.8.54即可;

    如果找不到uwsgi命令则需要复制uwsgi安装目录下, 执行上面命令后生成的uwsgi文件到/usr/bin目录

    nginx python spawn-fcgi Flup webpy

     

    环境依赖的软件包

    Nginx 0.8.* or 0.7.* (需要包含fastcgi和rewrite模块)。 
    Webpy 0.34 
    Spawn-fcgi 1.6.2 
    Flup 
    安装webpy 
    $ wget http://webpy.org/static/web.py-0.34.tar.gz 
    $ tar xvzf web.py-0.34.tar.gz 
    $ cd web.py-0.34 
    $ sudo python setup.py install

    安装 Flup 
    http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz 
    $ wget http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz 
    $ tar xvzf flup-1.0.2.tar.gz 
    $ cd flup-1.0.2.tar.gz 
    $ sudo python setup.py install

    安装 Spawn-fcgi 
    wget http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz 
    tar zxvf spawn-fcgi-1.6.3.tar.gz 
    cd spawn-fcgi-1.6.3.tar.gz 
    ./configure –prefix=/usr设置到/usr 
    make && make install # install 
    安装Nginx 
    源码包可以在官方主页上下载。Ubuntu 7.10可以直接通过apt安装,也可以从这里下载最新的deb包: 
    sudo apt-get install nginx 
    如果要自己编译的话,需要确保自己已经有编译器和PCRE的库(用于Nginx的rewrite模块,如果不需要这个模块可以在configure时使用./configure –without-rewrite)。

    编译方法如下: 
    wget http://sysoev.ru/nginx/nginx-0.5.34.tar.gz 
    tar zxvf nginx-0.5.34.tar.gz 
    cd nginx-0.5.34 
    ./configure #默认配置安装路径为/usr/local/nginx 可以追加–prefix=/usr设置到/usr 
    make && make install # install要求有root权限

    Nginx 配置文件

    location / { 
        include fastcgi_params; 
        fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;  # [1] 
        fastcgi_param PATH_INFO $fastcgi_script_name;        # [2] 
        fastcgi_pass 127.0.0.1:9002; 

    对于静态文件可以添加如下配置:

    location /static/ { 
        if (-f $request_filename) { 
        rewrite ^/static/(.*)$  /static/$1 break; 
        } 
    }

    重启nginx配置: 
    /path/to/nginx/sbin/nginx -s reload

    停止nginx: 
    /path/to/nginx/sbin/nginx -s stop 
    Spawn-fcgi

    可以通过一下命令启动一个Spawn-fcgi进程:

    sudo /usr/local/spawn-fcgi/bin/spawn-fcgi -d /usr/local/nginx/cgi/ -f /usr/local/nginx/cgi/test.py -a 127.0.0.1 -p 9002 -P /tmp/webpy.pid

    将进程PID保存下来方便关闭进程:

    kill `cat /tmp/webpy.pid`

    参数说明:

    -f 指定调用 FastCGI 的进程的执行程序位置,根据系统上所装的 PHP 的情况具体设置 
    -a 绑定到地址 addr 
    -p 绑定到端口 port 
    -F 指定产生的 FastCGI 的进程数  (很多人以为是-C,其实那是PHP专用的,这里要用-F) 
    -P 指定产生的进程的 PID 文件路径 
    -u 和 -g FastCGI 使用什么身份运行

    如果运行Spawn-fcgi之后,ps -ef 不能发现进程,sudo netstat -antup不能发现端口说明Spawn-fcgi没有正常启动,可以在启动参数中加 -n 之后再启动会有详细信息.问题也就找到了.

    蓝天博客

    今天多一份拼搏明天多几份欢笑

  • 相关阅读:
    ndk的注意事项
    git
    centos 7 linux x64
    linuxGame:文明5汉化
    pycharm something
    linux soft
    jsfl脚本设置导出AS链接名遇到的奇怪问题
    jsfl调整笔刷的笔触和颜色
    [转]FINDSTR正则表达式小结
    [转]关于SVN的操作批处理示例
  • 原文地址:https://www.cnblogs.com/xiaoleiel/p/8301228.html
Copyright © 2011-2022 走看看