您的位置:首页 > 运维架构 > Nginx

centos 下 django + uwsgi + nginx 快速搭建

2014-09-17 23:42 573 查看
1.首先安装pip,pip安装其他的软件很方便, 已经有了pip就跳过这步。

wget https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz --no-check-certificate
tar zxvf pip-1.3.1.tar.gz
cd pip-1.3.1
ln /usr/local/python2.6/bin/pip /usr/bin/pip

2. 安装uwsgi

pip install uwsgi

测试uwsgi,/home/mm/www目录下建立test.py,代码如下:

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

启动uwsgi,

uwsgi --http :8002 --wsgi-file /home/mm/www/test.py

本人服务器的ip是192.168.8.99, 在浏览器充访问http://192.168.8.99:8002/,显示"Test uwsgi success!", 说明uwsgi安装成功。

3. 安装django

pip install django
ln /usr/local/python2.6/bin/django-admin.py /usr/bin/django-admin.py

测试django,首先创建django应用mysite

[root@localhost www]# cd /home/mm/www/
[root@localhost www]# django-admin.py startproject mysit

看看mysite这个应用

[root@localhost www]# cd mysite
[root@localhost mysite]# ls
manage.py  mysite

启动django应用

manage.py runserver 0.0.0.0:8002

好了,django应用的服务器启动了,在浏览器中访问http://192.168.8.99:8002/,显示下图则表明django安装成功了!



4.连接django和uwsgi

在/home/mm/www/mysite目录下创建django_wsgi.py,django_wsgi.py和manage.py位于同一个目录,django_wsgi.py的内容如下:

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

reload(sys)
sys.setdefaultencoding('utf8')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

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

然后启动uwsgi,

uwsgi --http :8002 --chdir /home/mm/www/mysite/ --module django_wsgi

在浏览器中访问http://192.168.8.99:8002/,同样能显示下图,表示成功,此次请求是经uwsgi传给django程序的。



5.nginx配置

nginx的安装和配置就不多说了。

在nginx.conf文件中加入下面内容

############################## django uwsgi#####################
server {
listen 8000;
server_name 192.168.8.99;

access_log /home/mm/www/logs/access.log;
error_log /home/mm/www/logs/error.log;

root /root/mm/www;
location / {
uwsgi_pass 127.0.0.1:8077;
include /usr/local/nginx/conf/uwsgi_params;
}
access_log off;
}

这样nginx配置就完成了, 然后重启nginx。

6.uwsgi使用ini配置

以上一直是用命令启动uwsgi,实际部署中使用配置文件方式启动。在/home/mm/www/mysite目录下创建文件uwsgi.ini, 内容如下:

[uwsgi]
vhost = false
plugins = python
socket = 127.0.0.1:8077
master = true
enable-threads = true
workers = 1
wsgi-file = /home/mm/www/mysite/mysite/wsgi.py
chdir = /home/mm/www/mysite

以上设置中,Nginx 采用 8077 端口与 uWSGI 通讯。

下面启动uwsgi,

uwsgi --ini /home/mm/www/mysite/uwsgi.ini&

查看uwsgi进程,

[root@localhost mysite]# netstat -ntlp | grep uwsgi
tcp        0      0 127.0.0.1:8077              0.0.0.0:*                   LISTEN      19773/uwsgi

uwsgi启动成功了。

在浏览器中访问http://192.168.8.99:8000/,下图表明成了。此次请求由nginx传给uwsgi,再传给django应用。



至此,django + uwsgi + nginx的环境完成,吖吖,很快捷呀。

关闭uwsgi的方法:

killall -9 uwsgi
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  django uwsgi nginx centos