Django+Nginx+uWSGI 安装配置学习笔记

1. 前言

Django 是一个优秀的 Python Web 框架,而 Nginx 和 uWSGI 则是部署 Django 应用时常用的 Web 服务器和应用服务器。本文将介绍如何在 Ubuntu 系统上安装配置 Django+Nginx+uWSGI。

2. 环境准备

2.1 系统要求

  • Ubuntu 18.04 LTS 或以上版本;
  • Python 3.x;
  • Django 3.x;

2.2 安装必要软件

bashCopy Code
$ sudo apt-get update $ sudo apt-get install python3-pip python3-dev build-essential

2.3 安装虚拟环境

bashCopy Code
$ sudo apt-get install python3-venv $ mkdir ~/myproject $ cd ~/myproject $ python3 -m venv myprojectenv $ source myprojectenv/bin/activate

3. Django 应用的安装与配置

3.1 安装 Django

bashCopy Code
(myprojectenv)$ pip install django

3.2 创建并测试 Django 应用

bashCopy Code
(myprojectenv)$ django-admin startproject myproject (myprojectenv)$ cd myproject (myprojectenv)$ python manage.py runserver

打开浏览器并访问 http://localhost:8000,如果能看到默认的 Django 欢迎页面,则表示 Django 应用已经正确安装并可以正常运行。

3.3 添加应用程序

bashCopy Code
(myprojectenv)$ python manage.py startapp myapp

3.4 编写应用程序

myproject/myapp/views.py 中添加如下代码:

pythonCopy Code
from django.http import HttpResponse def index(request): return HttpResponse("Hello, world!")

myproject/myapp/urls.py 中添加如下代码:

pythonCopy Code
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ]

myproject/myproject/urls.py 中添加如下代码:

pythonCopy Code
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('myapp/', include('myapp.urls')), path('admin/', admin.site.urls), ]

3.5 测试应用程序

bashCopy Code
(myprojectenv)$ python manage.py runserver

打开浏览器并访问 http://localhost:8000/myapp/,如果能看到 "Hello, world!" 的消息,则表示 Django 应用程序已经正确地配置并可以正常访问。

4. 安装 Nginx

bashCopy Code
$ sudo apt-get install nginx

4.1 配置 Nginx

创建一个新的 Nginx 配置文件 /etc/nginx/sites-available/myproject

bashCopy Code
$ sudo nano /etc/nginx/sites-available/myproject

添加如下内容:

Copy Code
server { listen 80; server_name example.com; location /static { alias /home/user/myproject/static; } location / { uwsgi_pass unix:///run/uwsgi/myproject.sock; include /etc/nginx/uwsgi_params; } }

保存并退出。

启用此新配置:

bashCopy Code
$ sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled

测试 Nginx 配置:

bashCopy Code
$ sudo nginx -t

如果输出 "nginx: configuration file /etc/nginx/nginx.conf test is successful" 则表示配置正确。

重新加载 Nginx:

bashCopy Code
$ sudo service nginx reload

5. 安装 uWSGI

bashCopy Code
(myprojectenv)$ pip install uwsgi

5.1 创建 uWSGI 配置文件

在 Django 应用程序根目录下创建一个新的 uwsgi.ini 文件:

Copy Code
[uwsgi] chdir = /home/user/myproject module = myproject.wsgi:application master = true processes = 5 socket = /run/uwsgi/myproject.sock chmod-socket = 664 vacuum = true

5.2 启动 uWSGI

bashCopy Code
(myprojectenv)$ uwsgi --ini uwsgi.ini

6. 测试

打开浏览器并访问 http://example.com,如果能看到 "Hello, world!" 的消息,则表示 Django+Nginx+uWSGI 已经正确安装配置并可以正常工作。

至此,本文就介绍了如何在 Ubuntu 系统上安装配置 Django+Nginx+uWSGI,希望对读者有所帮助。