Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。
wsgi是PythonWeb服务器网关接口(Web Server Gateway Interface),WSGI是作为Web服务器与Web应用程序或应用框架之间的一种低级别的接口,以提升可移植Web应用开发的共同点。WSGI是基于现存的[[CGI]]标准而设计的。
Django是一个开放源代码的Web应用框架,由Python写成。
Virtualenv指的的Python的虚拟环境
supervisor管理进程,是通过fork/exec的方式将这些被管理的进程当作supervisor的子进程来启动,所以我们只需要将要管理进程的可执行文件的路径添加到supervisor的配置文件中就好了。此时被管理进程被视为supervisor的子进程,若该子进程异常中断,则父进程可以准确的获取子进程异常中断的信息,通过在配置文件中设置autostart=ture,可以实现对异常中断的子进程的自动重启。
整个请求和响应流程如下:
一、Python环境的准备
说明,系统为centos 7.3
1 安装python3
安装python 3.4和对应版本的pip
[root@node1 ~]# yum install python34.x86_64 python34-pip.noarch -y
2 安装虚拟环境
[root@node1 ~]# pip3 install virtualenv
(1)创建虚拟目录
[root@node1 ~]# virtualenv django
(2)进入虚拟目录
[root@node1 ~]# cd django/
(3)启用虚拟环境
[root@node1 django]# source bin/activate
可以看到目录地下有默认的几个文件夹
(django) [root@node1 django]# ll total 0 drwxr-xr-x 3 root root 330 Nov 5 15:00 bin drwxr-xr-x 2 root root 24 Nov 5 14:55 include drwxr-xr-x 3 root root 23 Nov 5 14:55 lib lrwxrwxrwx 1 root root 16 Nov 5 14:55 lib64 -> /root/django/lib
二、Django的安装与项目创建以及配置
1 安装Django,这里使用1.11版本
(django) [root@node1 django]# pip3 install django==1.11 Collecting django==1.11 …………… Installing collected packages: pytz, django Successfully installed django-1.11 pytz-2018.7
2 创建项目和应用
(1)创建名为mysite的项目
(django) [root@node1 django]# django-admin startproject mysite
(2)创建名为app01的应用
(django) [root@node1 django]# cd mysite/
(django) [root@node1 mysite]#python3 manage.py startapp app01
(3)可以看到mysite项目下有如下目录
(django) [root@node1 mysite]# ll total 4 drwxr-xr-x 3 root root 123 Nov 5 15:07 app01 -rwxr-xr-x 1 root root 804 Nov 5 15:04 manage.py drwxr-xr-x 3 root root 93 Nov 5 15:07 mysite
3 修改默认配置文件
(1)修改Django配置文件mysite/settings.py
ALLOWED_HOSTS = ['*'] 注册app01 INSTALLED_APPS = [ 'app01.apps.App01Config', .... ] 静态文件目录 STATIC_URL = '/static/' STATICFILES_DIRS=[ os.path.join(BASE_DIR,"static"), ]
(2)修改路由匹配规则mysite/urls.py
from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^index/', views.index), ]
(3)新建功能,修改app01/views.py
from django.shortcuts import HttpResponse def index(request): return HttpResponse('Hello World!')
4 启动Django
(django) [root@node1 mysite]# python3 manage.py runserver Performing system checks... ……. Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
测试访问
[root@node1 ~]# curl http://127.0.0.1:8000/index/ Hello World!
三、uwsgi的安装与配置
1 由于使用pip3 install uwsgi 安装会报我不能解决的错误
在ubuntu上不会有这个错误
Command "/usr/bin/python3.4 -u -c "import setuptools, tokenize; __file__='/tmp/pip-install-k0ebn5sl/uwsgi/setup.py'; f=getattr(tokenize, 'open', open)(__file__); code=f.read().replace('\r\n', '\n'); f.close(); exec(compile(code, __file__, 'exec'))" \ install --record /tmp/pip-record-eekd779j/install-record.txt \ --single-version-externally-managed \ --compile" failed with error code 1 in /tmp/pip-install-k0ebn5sl/uwsgi/
故采用以下安装方式(仅限centos):
[root@node1 ~]# yum install uwsgi 查看版本 [root@node1 ~]# uwsgi --version 2.0.17.1
2 安装uwsgi-plugin-python3
注:插件 Ubuntu不需要此步