|
实验内容
Django 是一个用 Python 开发的开源 Web 应用框架,采用 MVC 模式。本实验带您搭建一个最简单的 Django 站点,并使用 uwsgi 和 nginx 作为 Web 服务器。
免费在线实验地址:点击进入
实验资源:云服务器,没有云服务器的朋友推荐1折抢购:69元/年的阿里云服务器、或者99元/年的腾讯云服务器
软件环境:Ubuntu 16.04.1 LTS 64 位
一、安装 django
安装 pip
- sudo apt install python-pip -y
复制代码 使用 pip 安装 django
- sudo pip install django==1.11
复制代码
二、创建 Hello World 应用并启动 Web 服务器
创建项目
- cd /data
- sudo django-admin startproject helloworld
复制代码 定位到 /data/helloworld 目录
修改配置文件
修改 /data/helloworld/helloworld/settings.py 文件权限为其它人可写
- sudo chmod 666 /data/helloworld/helloworld/settings.py
复制代码 编辑 /data/helloworld/helloworld/settings.py
将 ALLOWED_HOSTS = [] 修改为 ALLOWED_HOSTS = ["<您的 CVM IP 地址>"] ,这样可以允许通过 ip 访问
在实际运营中一般要改为对应的域名
启动 django 自带的 Web 服务器
- cd helloworld
- sudo python manage.py runserver 0.0.0.0:8080
复制代码 使用浏览器访问- http://<您的 CVM IP 地址>:8080/
复制代码 看到如下页面,表示 django 服务已经部署成功
三、创建简单的页面
关闭 Web 服务器
按 Ctrl + C 关闭 Web 服务器
创建 views.py
创建文件 /data/helloworld/helloworld/views.py ,并修改权限为其它人可写
- sudo touch /data/helloworld/helloworld/views.py
- sudo chmod 666 /data/helloworld/helloworld/views.py
复制代码 添加视图函数
编辑 /data/helloworld/helloworld/views.py
添加如下内容:
- # -*- coding: utf-8 -*-
- from django.http.response import HttpResponse
- def hello(request):
- user = request.GET.get('user')
- if not user: user = 'world'
- return HttpResponse('hello %s' % user)
复制代码 按 Ctrl + S 保存
修改 urls.py 文件权限
修改 /data/helloworld/helloworld/urls.py 文件权限为其它人可写
- sudo chmod 666 /data/helloworld/helloworld/urls.py
复制代码 添加路由配置
编辑 /data/helloworld/helloworld/urls.py
将
- urlpatterns = [
- url(r'^admin/', admin.site.urls),
- ]
复制代码 修改为
- import views
- urlpatterns = [
- url(r'^admin/', admin.site.urls),
- url(r'^hello', views.hello),
- ]
复制代码 按 Ctrl + S 保存
测试 url 访问是否正常
再次启动 Web 服务器
- sudo python manage.py runserver 0.0.0.0:8080
复制代码 使用浏览器访问下面两个 url- http://<您的 CVM IP 地址>:8080/hello
- http://<您的 CVM IP 地址>:8080/hello?user=test
复制代码 关闭 Web 服务器
按 Ctrl + C 停止 Web 服务器
四、部署 uwsgi 和 nginx
使用 pip 安装 uwsgi
配置 uwsgi
创建文件 /data/helloworld/uwsgi.ini ,并修改权限为其它人可写
- sudo touch /data/helloworld/uwsgi.ini
- sudo chmod 666 /data/helloworld/uwsgi.ini
复制代码 编辑 /data/helloworld/uwsgi.ini
输入以下内容,并保存
- [uwsgi]
- chdir = /data/helloworld
- module = helloworld.wsgi
- socket = 127.0.0.1:8080
- master = true
- vhost = true
- no-site = true
- workers = 2
- reload-mercy = 10
- vacuum = true
- max-requests = 1000
- limit-as = 512
- buffer-size = 30000
- pidfile = /tmp/uwsgi.pid
- daemonize = /tmp/uwsgi.log
复制代码 启动 uwsgi- export PYTHONPATH=/usr/local/lib/python2.7/dist-packages
- uwsgi --ini /data/helloworld/uwsgi.ini
复制代码 安装 nginx- sudo apt-get install nginx -y
复制代码 添加 nginx 配置文件
创建文件 /etc/nginx/sites-enabled/helloworld.conf ,并修改权限为其它人可写
- sudo touch /etc/nginx/sites-enabled/helloworld.conf
- sudo chmod 666 /etc/nginx/sites-enabled/helloworld.conf
复制代码 编辑 /etc/nginx/sites-enabled/helloworld.conf
输入以下内容,并保存
- server {
- listen 80;
- server_name <您的 CVM IP 地址>;
- charset utf-8;
- location / {
- uwsgi_pass 127.0.0.1:8080;
- include /etc/nginx/uwsgi_params;
- client_max_body_size 10m;
- }
- client_body_timeout 3m;
- send_timeout 3m;
- proxy_send_timeout 3m;
- proxy_read_timeout 3m;
- }
复制代码 重启 nginx 服务- sudo systemctl restart nginx
复制代码
五、测试 nginx + uwsgi + django 是否工作正常
测试页面是否能够正常访问
使用浏览器测试下面的 url 是否可以正常访问
- http://<您的 CVM IP 地址>/hello
复制代码
|
|