centos6.5安装nginx+python+uwsgi+django

nginx+uwsgi+django环境部署及测试

默认系统自带的python2.6.6

第一步(安装setuptools)

 

wget https://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz  --no-check-certificate

tar zxvf setuptools-0.6c11.tar.gz

cd setuptools-0.6c11

python setup.py install   

 

第二步(安装pip)

 

这里有较新版的pip https://pypi.python.org/pypi/pip/(需要新的版本,下面版本太旧)

下载:wget https://pypi.python.org/packages/22/f3/14bc87a4f6b5ec70b682765978a6f3105bf05b6781fa97e04d30138bd264/pip-8.0.3.tar.gz#md5=8f000fc101e47f4f199fa29df1e0b0df

解压:tar zxvf pip-8.0.3.tar.gz

cd pip-8.0.3

python setup.py install 

 

pip list查看当前已经安装的东西

 

第三步(通过pip安装django)

 

pip install django==1.6(指定版本)

至此django的环境已经可以了,可以测试一下是否成功

 

第四步 (测试django)

进入目录/home/shifeixiang/python/django

创建一个django项目--django-admin.py startproject mysite

这样就能看到自己的django项目

cd ./mysite

可以看到一个文件夹,一个文件

接下来启动django自带的服务

python manage.py runserver 0.0.0.0:8011(端口是8011,0.0.0.0表示任意地址访问)

在自己电脑打开浏览器

ip地址是django所在的主机的地址

 

这表明django可以执行了

 

第五步(安装相关的软件,为nginx和uwsgi的安装做准备)

 

sudo yum groupinstall "Development tools" sudo yum install openssl openssl-devel sqlite-devel zlib-develbzip2-devel  ncurses-devel readline-devel tk-devel  sudo yum install pcre pcre-devel pcre-static

安装python-devel  

yum install python-devel  

否则出现错误:

Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-PY2Y2u/uwsgi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-QoUtnM-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-PY2Y2u/uwsgi/

 

第六步(安装uwsgi)

sudo pip install uwsgi

在主目录下会有mysite/wsgi.py文件

因此在项目的主目录执行

uwsgi --http 0.0.0.0:8011 --module mysite.wsgi

 

在本地的浏览器中输入ip和端口,如下,表示uwsgi和django可以连通:

此时的服务方式如下:

the web client <-> uWSGI <-> Django

 

通过ctrl+c 停止

 

第七步(安装nginx)

 

sudo rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm #安装nginx yum源 sudo yum info sudo yum install nginx

查看版本 nginx -v

 

第八步(配置相关信息)

 

在django项目所在的目录下面,也就是manage.py同级的目录  

创建django_wsgi.py文件:

#coding=utf-8

import os

#设置系统的DJANGO_SETTINGS_MODULE参数指向django项目的settings.py文件

os.environ['DJANGO_SETTINGS_MODULE']='test_project.settings'

import  django.core.handlers.wsgi

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

 

在项目主目录下配置uwsgi,mysite_uwsgi.ini

[uwsgi]

     socket = 0.0.0.0:8078

     listen = 16

     #env = PYTHONPATH=/home/shifeixiang/workspace/python/django/mysite/3rd-packages/

     processes = 8  

     module = django_wsgi

     chdir = /home/shifeixiang/workspace/python/django/mysite

     pidfile = /usr/local/nginx/uwsgi_mysite.pid

     enable-threads = true

     pythonpath = /home/shifeixiang/workspace/python/django/mysite

     daemonize = /data/logs/mysite_uwsgi.log

 

socket:地址和端口号,与Nginx的uwsgi_pass配置对应  

listen:设置socket的监听队列大小  

env:设置一个系统环境变量  

processes:开启的进程数量  

pidfile:存放pid的文件  

module:运行的python模块的名称  

pythonpath:运行的python模块所在的路径  

enable-threads:是否允许运行线程  

daemonize:使进程在后台运行,并将日志打到指定的日志文件   

touch-reload:当该文件被touch的时候,重启uWSGI    

 

最后配置nginx文件

server {

          listen 80;

          server_name hd3.mingchao.com www.testmysite.com;

          root /home/shifeixiang/python/django/mysite;

          error_log /data/logs/update.center.mcmysite.com;

          location / {

                  uwsgi_read_timeout 600;

                  uwsgi_send_timeout 600;

                  uwsgi_pass 0.0.0.0:8079;

                  include  uwsgi_params;

          }

          location /static/{

                  alias /home/shifeixiang/python/django/mysite/static/;

              break;

          }

       }

 

listen:Nginx对外的端口,也就是用浏览器访问的端口  

server_name:该服务端的域名  

error_log:错误日志会输出到这个文件  

location:上面第一个location的配置表示的把服务器/目录的请求通过本地的9099端口重定向给uwsgi  

这里可以设置uwsgi的参数,例如uwsgi_read_timeout表示等待uwsgi返回数据的超时时间,uwsgi_send_timeout表示向uwsgi发动请求的超时时间  

第二个location是设置静态文件,表示/static/目录的请求,返回服务器/data/web/mcyw_test_project/static/目录下的文件  

 

第九步(启动uwsgi和nginx)

启动uwsgi 

uwsgi mysite_uwsgi.ini

启动nginx

service nginx restart

 

登陆时默认的是80端口,在nginx中配置listen 80;

这种服务方式为:

浏览器 <-> nginx <-> uWSGI <-> Django(python)

nginx作为反向代理

 

如需域名访问,需要在本地设置hosts文件,添加ip与域名的映射,或者设置DNS

成功

转载于:https://my.oschina.net/u/2930192/blog/759134

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值