通常将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进程杀死即可
一 安装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进程杀死即可