django:一个开放源代码的Web应用框架,由Python写成,采用了MVC的软件设计模式。可以用pip安装。
uWSGI:一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。
nginx:具备优秀的静态内容处理能力,然后将动态内容转发给uWSGI服务器,这样可以达到很好的客户端响应。
环境安装
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
nginx的安装:
一般用源码编译安装Nginx,都需要先安装pcre\zlib等外部支持程序,然后配置安装nginx时候这些外部程序的源码的路径,这样Nginx在每次启动的时候,就会动态地去加载这些东西了。后面是否对这些外部程序单独编译,自己决定,不编译影响不大。
安装PCRE外部程序
cd /root/install wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.30.tar.gz tar -zxvf pcre-8.30.tar.gz cd pcre-8.30 ./configure --prefix=/usr/local/pcre8.30 make && make install
安装OPENSSL外部程序
cd /root/install wget http://www.openssl.org/source/openssl-1.0.0a.tar.gz tar -zxvf openssl-1.0.0a.tar.gz cd openssl-1.0.0a ./config --prefix=/usr/local/openssl1.0.0 make && make install
安装ZLIB外部程序
cd /root/install wget http://www.zlib.net/zlib-1.2.7.tar.bz2 tar -jxvf zlib-1.2.7.tar.bz2 cd zlib-1.2.7 /configure --prefix=/usr/local/zlib1.2.7 make && make install
最后安装NGINX
cd /root/install wget http://nginx.org/download/nginx-1.0.15.tar.gz tar -zxvf nginx-1.0.15.tar.gz cd nginx-1.0.15 ./configure --prefix=/usr/local/nginx --with-http_sub_module --with-pcre=/root/install/pcre-8.30 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://localhost
生产配置
1、配置需求环境
pip freeze > requirements.txt 在开发环境将工程依赖的包导出。
pip install virtualenv
pip install virtualenvwrapper
编辑~/.bashrc
export WORKON_HOME=$HOME/.virtualenvs
source /usr/bin/virtualenvwrapper.sh
执行 source ~/.bashrc,后workon命令就可以用了,并且通过mkvirtualenv创建的都可以通过workon命令查看
mkvirtualenv testenv创建一个虚拟环境
pip install -r requirements.txt 就会从文件里边读取依赖并且安装。
如果提示mysql_config not found报错,则执行yum -y install mysql-devel
如果提示gcc错误,则安装 yum -y install gcc python-devel
pip install uwsgi 安装uwsgi
uwsgi --http :8000 --module muxue.wsgi 测试uwsgi 安装是否成功
muxue.wsgi 指的是django应用的根目录下的muxue文件夹下的wsgi.py文件,这样就可以直接把django项目启动起来
2、添加nginx配置文件
upstream django {
server 127.0.0.1:8000; # for a web port socket (we'll use this first)
}
server {
listen 80;
server_name 192.168.201.131; # substitute your machine's IP address or FQDN
charset utf-8;
client_max_body_size 75M; # adjust to taste
location /media {
alias /opt/django_muxue/media; # 指向django的media目录
}
location /static {
alias /opt/django_muxue/static; # 指向django的static目录
}
location / {
uwsgi_pass django;
include uwsgi_params; # the uwsgi_params file you installed
}
}
3、拉取所有需要的static file 到同一个目录
在django的setting文件中,添加下面一行内容:
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
运行命令 python manage.py collectstatic
4、配置一个uwsgi .ini配置文件,然后用配置文件来启动uwsgi
[uwsgi]
chdir = /opt/django_muxue/
module = muxue.wsgi
master = true
processes = 10
socket = 127.0.0.1:8000
vacuum = true
virtualenv = /root/.virtualenvs/mxonline
启动uwsgi,通过配置文件的方式 uwsgi -i uwsgi.ini
重启uwsgi,pkill -f uwsgi