在macOS与Linux环境下部署Python Django项目及Nginx反向代理指南
本文详细讲解在macOS及Linux环境中从零搭建Django项目的标准流程。内容涵盖依赖安装、MySQL连接配置、路由规则与视图逻辑编写、本地服务调试,以及基于Gunicorn与Nginx组合完成生产环境反向代理与静态文件托管的操作步骤,附带关键版本的兼容性修正说明。
一、环境准备与项目初始化
第1步:安装基础依赖并创建工程结构
Django 项目通常建议在独立的环境中运行以避免依赖冲突。在 macOS 或 Linux 终端中,首先安装核心框架及相关工具:
pip install django gunicorn mysqlclient
python -c "import django; print(django.get_version())"
确认版本号返回后,即可在当前工作目录下生成项目骨架与第一个应用(App)。为避免工程目录与应用命名冲突,此处将应用命名为 cmdb_app:
django-admin startproject cmdb
cd cmdb
django-admin startapp cmdb_app
第2步:配置数据库连接与应用注册
打开项目根目录下的 settings.py,将新建的应用添加至 INSTALLED_APPS,并根据实际环境填写 MySQL 数据库连接参数:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'cmdb_app',
]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'cmdb_db',
'USER': 'your_username',
'PASSWORD': 'your_password',
'HOST': 'localhost',
'PORT': '3306',
}
}
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
二、路由映射与业务视图开发
第3步:编写 URL 规则与响应逻辑
在现代 Django(3.0及以上版本)中,推荐使用 path 进行路由定义。编辑项目主目录的 urls.py:
from django.contrib import admin
from django.urls import path
from cmdb_app import views
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', views.index, name='index'),
]
随后在应用目录下的 views.py 中编写具体的处理函数:
from django.http import HttpResponse
def index(request):
return HttpResponse('<h1>hello welcome to django!</h1>')
三、本地调试与生产部署
第4步:本地服务启动与功能验证
完成上述配置后,可在当前 manage.py 所在目录直接启动内置服务器进行调试:
python manage.py runserver
终端输出显示 Starting development server at http://127.0.0.1:8000/ 即表示成功。在浏览器访问 http://localhost:8000/index,若页面正常渲染欢迎语,则说明路由、视图与数据库配置链路畅通。
第5步:配置 Gunicorn 与 Nginx 生产环境
生产环境不建议使用内置服务器。采用 Gunicorn 作为 WSGI HTTP 服务器,配合 Nginx 处理并发请求与静态资源,是业界标准实践。操作前务必备份现有配置文件以防误改。
Gunicorn 启动命令示例:
gunicorn cmdb.wsgi:application --bind=127.0.0.1:8000 --daemon
参数说明:--bind 指定监听 IP 与端口,--daemon 允许进程转入后台运行。可通过 gunicorn --help 查看绑定 worker 数(-w)、日志路径等高级选项。
Nginx 负责接收外部流量并转发至 Gunicorn。以下提供基础反向代理与静态文件映射配置模板:
server {
listen 80;
server_name your_domain.com; # 替换为实际域名或内网IP
location / {
proxy_pass http://127.0.0.1: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;
}
location /static/ {
alias /opt/wwwroot/cmdb/static/; # 需对应实际 collectstatic 后的静态目录路径
}
access_log /var/log/nginx/cmdb.access.log;
error_log /var/log/nginx/cmdb.error.log;
}
配置保存后,执行 nginx -t 检查语法无误,接着通过 nginx -s reload 平滑重启生效。此时动态请求将由 Gunicorn 处理,静态资源由 Nginx 直接读取磁盘返回,大幅提升整体吞吐量。
以上就是在macOS与Linux系统下部署Django项目与配置Gunicorn+Nginx的详细内容,更多关于Python Web框架实操与服务器环境调优的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









