Django Nginx+uwsgi 安装配置
Django Nginx + uwsgi 安装配置说明
简介
在开发Django网站时,将其部署到生产环境中是意义重大的一步。Django Nginx + uwsgi是一种非常常见,方便的部署方式。本文将介绍如何在Ubuntu 18.04上安装和配置Django Nginx + uwsgi。
前提条件
在执行本文中的操作之前,请首先确保您已经安装了以下软件包:
- Python 3
- pip
- Nginx
- uwsgi
步骤 1 - 创建 Python 环境并安装 Django
-
创建Python虚拟环境(可选)
python3 -m venv env source env/bin/activate
-
安装Django
pip install django
步骤 2 - 创建Django项目
-
使用以下命令创建一个新项目
django-admin startproject myproject
-
进入myproject目录并创建新的应用程序
cd myproject django-admin startapp myapp
-
编辑myapp/views.py文件,并添加如下代码
from django.http import HttpResponse def home(request): return HttpResponse("Hello, World!")
-
在myproject/urls.py文件中添加以下代码
from django.urls import path from . import views urlpatterns = [ path('', views.home, name='home'), ]
步骤 3 - 配置uWSGI
-
创建一个名为uwsgi.ini的文件,并添加以下代码
[uwsgi] #定义uwsgi 运行方式 socket = /tmp/myproject.sock #指向Django项目的目录 chdir = /path/to/myproject/ wsgi-file = /path/to/myproject/wsgi.py #指定uwsgi进程数量 processes = 4 #指定uwsgi线程数 threads = 2 #定义uwsgi用户,与运行nginx的用户一致 uid = www-data gid = www-data harakiri = 30 access-log = /path/to/logs/access.log
其中:
- socket:指定uwsgi与nginx交互的方式,可以是socket或者http。
- chdir:指定Django项目的路径。
- wsgi-file:指定WSGI文件的位置。
- processes:指定uwsgi进程数。
- threads:指定uwsgi线程数。
- uid和gid:指定uwsgi运行时的用户。
- harakiri:指定超时时间。
- access-log:指定uwsgi的日志文件路径。
-
启动uwsgi
uwsgi --ini /path/to/uwsgi.ini
步骤 4 - 配置Nginx
-
启动Nginx并编辑 /etc/nginx/sites-available/default 文件
sudo service nginx start sudo nano /etc/nginx/sites-available/default
-
在 server {} 配置块中添加以下内容
server { listen 80; server_name example.com; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /path/to/myproject; } location / { include /etc/nginx/uwsgi_params; uwsgi_pass unix:///tmp/myproject.sock; }
}
其中:
- listen:指定监听端口。
- server_name:指定域名。
- location /static/:指定静态文件的路径。
- location /:配置uwsgi_pass指向uwsgi的socket文件。
3. 重启Nginx服务
sudo service nginx restart
## 结论
现在,您的Django网站已经可以在Nginx中运行了。在浏览器中输入服务器的 IP 地址或域名,即可查看Django应用程序的默认页面。