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 Codefrom django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world!")
在 myproject/myapp/urls.py
中添加如下代码:
pythonCopy Codefrom django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
在 myproject/myproject/urls.py
中添加如下代码:
pythonCopy Codefrom 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 Codeserver {
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,希望对读者有所帮助。