阿里云CentOS在搭建Django+nginx+uwsgi

2015/01/24   
分类:  blog    centos   

对于linux只是菜鸟,配置这些东西好蛋疼。所以简单记录吧。

网上其实好多教程,各种版本都有,还是要自己实践了才知道。

上一篇已经升级了python到2.7

1、安装一下pip,python必备

wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py

2、安装Django

pip install Django #(装了1.7.3)
#验证版本:
python
import django
print(django.get_version())

3、安装mysql服务

虽然要使用阿里云的RDS,但貌似还要安装mysql服务才能连接。

yum install mysql-server

#安装setuptools
wget https://bootstrap.pypa.io/ez_setup.py -O - | python

yum install mysql-devel
pip install MySQL-python

#安装pil
wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz
tar zxvf Imaging-1.1.7.tar.gz
cd Imaging-1.1.7
python setup.py install

2015-03-22, pil 将会被遗弃,建议使用Pillow(pip install Pillow)

4、安装uwsgi

2015-03-22, pip install uwsgi

wget https://pypi.python.org/packages/source/u/uWSGI/uwsgi-2.0.9.tar.gz
tar zxvf uwsgi-2.0.9.tar.gz
make
cp uwsgi /usr/bin #这句就能直接使用 uwsgi命令了

新建一个uwsgi.ini配置文件,随便放哪里都可以

vi uwsgi.ini
#内容
[uwsgi]
# set the http port
http-socket=:8001 #这句没必要可以去掉
# set socket port
socket=127.0.0.1:8000
# change to django project directory
chdir=/alidata/www/apj
# load django #wsgi.py目录
module=webconfig.wsgi:application
# auto reload when python file changed
py-autoreload=1

注意配置文件中配置了两个端口。第一个http-socket是配置可以通过端口访问的HTTP地址,http://127.0.0.1:8001访问(应该没必要)。

第二个配置SOCKET连接地址,就是给nginx配置用的。

5、安装nginx

wget http://nginx.org/download/nginx-1.6.2.tar.gz

#部分安装工具
yum install glib2-devel pcre-devel bzip2-devel
tar zxvf nginx-1.6.2.tar.gz
cd nginx-1.6.2
./configure
make install
cp /usr/local/nginx/sbin/nginx  /usr/bin

修改nginx.conf配置(vi /usr/local/nginx/conf/nginx.conf)

server {
    listen 80;
    server_name  0kai.net;

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

    location ~ ^/static/ {
        root /alidata/www/apj/;  #<-- path that include /static/
        expires 24h;
        access_log   off;
    }
}

注:静态文件要在这里配置一下,urls.py里面配置已经无效了。

6、网站开启

nginx
uwsgi --master --ini uwsgi.ini #已经cd到uwsgi.ini目录了

这样就能用配置的域名直接访问了。万岁!!!

但是当uwsgi开启后,那个命令界面一直在,不知道有没有办法处理。后续再研究吧

7、关闭

nginx -s stop
killall -9 uwsgi

本文地址 http://www.0kai.net/blog/2015/01/24/26-centos-django-nginx-uwsgi.html,转载请注明!