如何在Linux上使用Nginx和Gunicorn托管Django应用

原创
ithorizon 7个月前 (10-07) 阅读数 27 #Linux

怎样在Linux上使用Nginx和Gunicorn托管Django应用

在Linux系统上使用Nginx和Gunicorn来托管Django应用是一种常见的部署做法。这种做法结合了Nginx的高性能和稳定性以及Gunicorn作为Django应用的WSGI服务器,可以有效地节约应用的性能和可用性。以下是一篇详细的指南,帮助你完成这一部署过程。

准备工作

在开端之前,请确保你的Linux系统已经安装了以下软件包:

  • Python 3.6+(推荐使用Python 3.8或更高版本)
  • pip
  • Git
  • nginx
  • gcc
  • gunicorn

安装Django和Gunicorn

首先,你需要安装Django和Gunicorn。可以通过pip来安装这些包。

sudo pip3 install django

sudo pip3 install gunicorn

创建Django项目

使用Django的命令行工具创建一个新的项目。

django-admin startproject myproject

cd myproject

然后,创建一个应用,例如:

python manage.py startapp myapp

配置Django项目

编辑项目中的`settings.py`文件,配置数据库、中间件、模板等。以下是一个基本的配置示例:

# settings.py

INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'myapp', # 添加你的应用

]

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.sqlite3',

'NAME': BASE_DIR / 'db.sqlite3',

}

}

# 其他配置...

创建数据库表

在项目目录下运行以下命令来创建数据库表。

python manage.py makemigrations

python manage.py migrate

运行开发服务器

在项目目录下运行以下命令来启动Django开发服务器。

python manage.py runserver 0.0.0.0:8000

现在,你可以通过浏览器访问`http://localhost:8000/`来查看你的Django应用。

安装Gunicorn

在项目目录下,使用以下命令安装Gunicorn。

pip3 install gunicorn

配置Gunicorn

创建一个Gunicorn配置文件,例如`gunicorn_config.py`,用于设置Gunicorn的运行参数。

# gunicorn_config.py

bind = '0.0.0.0:8000'

workers = 3

timeout = 30

运行Gunicorn

在项目目录下,使用以下命令运行Gunicorn。

gunicorn --config gunicorn_config.py myproject.wsgi:application

现在,你的Django应用已经通过Gunicorn运行在Linux系统上。

配置Nginx

编辑Nginx配置文件,例如`/etc/nginx/sites-available/myproject`,添加以下内容:

server {

listen 80;

server_name yourdomain.com;

location / {

proxy_pass http://localhost:8000;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

}

location /static/ {

alias /path/to/your/project/static/;

}

}

确保将`yourdomain.com`替换为你的域名,并将`/path/to/your/project/static/`替换为你的静态文件目录。

启用Nginx配置

使用以下命令启用你的Nginx配置。

sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/

sudo nginx -t # 测试Nginx配置

sudo systemctl reload nginx # 重新加载Nginx配置

现在,你的Django应用已经通过Nginx和Gunicorn在Linux系统上圆满托管。

本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: Linux


热门