django 部署

通常将nginx作为服务器的最前端,nginx把所有静态请求自已来处理,nginx将所有非静态请求通过uwsgi传递给django,完成一次web请求

 
一 安装python 2.7.6

1.1 终端运行

#curl -kL http://xrl.us/pythonbrewinstall | bash

1.2 在~/.bashrc 末尾添加

[[ -s $HOME/.pythonbrew/etc/bashrc ]] && source $HOME/.pythonbrew/etc/bashrc

1.3 退出控制台以重新运行shell(如果被墙的话,到官网上下载pythonbrew1.3.4的安装包)

export PYTHONBREW_ROOT=/path/to/pythonbrew  
curl -kLO http://xrl.us/pythonbrewinstall  
chmod +x pythonbrewinstall  
./pythonbrewinstall  
pythonbrew install 2.7.5  
pythonbrew switch 2.7.5

二 easy_install 国内源添加(防止被墙)

$ easy_install -i http://mirrors.tuna.tsinghua.edu.cn/pypi/simple package  (以清华mirrors为例)

$ vim ~/.bashrc

  alias easy_install='easy_install -i http://mirrors.tuna.tsinghua.edu.cn/pypi/simple'

$ source ~/.bashrc

三 pip 安装

$ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ python get-pip.py

四 uwsgi安装
4.1 安装

export LDFLAGS="-Xlinker --no-as-needed"
pip install uwsgi

4.2 测试

# test.py
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return "Hello World"

执行shell命令

uwsgi --http :8001 --wsgi-file test.py

访问网页

http://127.0.0.1:8001/

4.3 配置django

测试django是否能跑起来,然后关闭django程序

./manage.py runserver 0.0.0.0:80

编写django_wsgi.py,将其放在manage.py的同一个目录下,编写文件时注意mysite.settings要改为yourproject.settings

#!/usr/bin/env python
# coding: utf-8

import os
import sys

# 将系统的编码设置为UTF8
reload(sys)
sys.setdefaultencoding('utf8')

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

from django.core.handlers.wsgi import WSGIHandler
application = WSGIHandler()

测试运行

uwsgi --http :8000 --chdir /path/to/mysite --module django_wsgi

五 nginx安装
5.1 下载并安装

apt-get install nginx

5.2 在manage.py 的同级目录下创建uwsgi.xml,注意修改/path/to/mysite

<uwsgi>
    <socket>:8077</socket>
    <chdir>/path/to/mysite</chdir>
    <module>django_wsgi</module>
    <processes>4</processes> <!-- 进程数 -->
    <daemonize>uwsgi.log</daemonize>
</uwsgi>

 5.3 配置 /etc/nginx/nginx.conf

server {

        listen   80;
        server_name www.you.com;
        access_log /home/work/var/test/logs/access.log;
        error_log /home/work/var/test/logs/error.log;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
         include        uwsgi_params;
         uwsgi_pass     127.0.0.1:8077;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location /static/ {
            alias  /home/work/src/sites/testdjango1/testdjango/collectedstatic/;
            index  index.html index.htm;
        }

        location /media/ {
            alias  /home/work/src/sites/testdjango1/testdjango/public/media/;
        }
    }

重启nginx 服务器

nginx -s reload

启动uwsgi服务器,在浏览器中输入域名,查看是否生效

uwsgi -x uwsgi.xml

关闭服务的方法,将uwsgi进程杀死即可

 

 

 

 

 

 

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章