将django项目部署到centos的踩坑实战

下面是将Django项目部署到CentOS的踩坑实战攻略,具体步骤如下:

准备工作

  1. 准备一台CentOS服务器,安装好Python环境和Django框架
  2. 安装和配置Nginx和uWSGI,设置Nginx代理

开始部署

示例一:直接使用uWSGI部署Django项目

  1. 在服务器上新建项目目录,例如:/root/myproject/
  2. 在myproject目录下,创建uwsgi.ini文件,配置uWSGI参数,示例如下:

[uwsgi]
chdir = /root/myproject/
module = myproject.wsgi:application
master = true
processes = 4
socket = /root/myproject/myproject.sock
chmod-socket = 666
vacuum = true

其中,各参数含义如下:
chdir:项目所在目录
module:Django项目中wsgi.py文件所在路径,以及application对象
master:开启主进程
processes:开启子进程个数
socket:uWSGI和Nginx通信的socket文件路径
chmod-socket:给socket文件授权,保证Nginx能够读取和写入socket文件
vacuum:自动清理Unix socket的空间

  1. 启动uWSGI服务:在myproject目录下执行以下命令:
    uwsgi --ini uwsgi.ini

  2. 配置Nginx:
    修改nginx.conf文件,在http{}节点下加入以下内容:
    ```
    server {
    listen 80;
    server_name your_domain.com;
    charset utf-8;
    access_log /var/log/nginx/your_domain.com.access.log main;

    client_max_body_size 35M;

    location / {
    include uwsgi_params;
    uwsgi_pass unix:/root/myproject/myproject.sock;
    }
    }
    ``
    其中,
    your_domain.com是你的域名或IP地址,client_max_body_size设置上传文件的最大大小,location`节点下的参数请根据具体的项目路径修改。

  3. 重启Nginx服务,验证项目是否部署成功。

示例二:使用Docker和Docker-compose快速部署Django项目

  1. 安装Docker和Docker-compose
  2. 在服务器上新建项目目录,例如:/root/myproject/
  3. 在myproject目录下,创建Dockerfile文件,配置Docker镜像,示例如下:

```
# Use an official Python runtime as a parent image
FROM python:3.6-slim

# Set the working directory to /app
WORKDIR /app

# Copy the current directory contents into the container at /app
ADD . /app

# Install any needed packages specified in requirements.txt
RUN pip3 install --trusted-host pypi.python.org -r requirements.txt

# Make port 80 available to the world outside this container
EXPOSE 80

# Define environment variable
ENV NAME World

# Run app.py when the container launches
CMD ["python3", "manage.py", "runserver", "0.0.0.0:80"]
```

上面的示例中,假设Django项目的manage.py文件中已设置好项目启动的端口号为80。

  1. 在myproject目录下,创建docker-compose.yml文件,示例如下:

version: "3"
services:
web:
build: .
ports:
- "80:80"

上面的配置中,将项目的80端口映射到宿主机的80端口。

  1. 启动Docker容器:在myproject目录下执行以下命令:
    docker-compose up

  2. 验证项目是否部署成功。

注意事项:
- 在Docker镜像中只需要安装项目所需的Python库,依赖的环境都已经打包在镜像中了,不需要再手动进行安装和配置。
- 如果需要更新代码,只需要重新构建镜像,然后重新启动容器即可。
- 如果使用Nginx代理,将Docker容器端口映射到Nginx的端口即可。
- 在Docker容器内,如果需要连接MySQL服务器,需要安装MySQL客户端库,通过pip install mysqlclient 安装即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:将django项目部署到centos的踩坑实战 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Django 中自定义 Admin 样式与功能的实现方法

    Django自带的Admin界面提供了非常方便的后台管理功能,然而,为了更好地满足业务需求,我们往往需要对Admin界面进行一些自定义的修改,例如修改表单样式、增加自定义页面等。本文将介绍Django中自定义Admin样式与功能的实现方法,包括两个实例,分别是修改Admin界面的样式、增加自定义页面。 修改Admin界面的样式 方案 Django中自定义Ad…

    Django 2023年5月16日
    00
  • Pycharm创建指定版本的Django

    写在前面: 先创建一个New Project(不是Django项目)和新的虚拟环境。 进入这个项目,安装指定版本的Django 在创建New django 项目,指定解释起为刚刚创建的 New Project 虚拟环境下的解释起,venv– scripts–python.exe 先创建一个New Project(不是Django项目)和新的虚拟环境。 1…

    Django 2023年4月16日
    00
  • Django基础知识 URL路由系统详解

    Django基础知识:URL路由系统详解 一、URL路由系统简介 在Django中,URL路由系统是用于匹配URL并将请求分发给适当的视图函数的机制,它可以让我们轻松地将不同的请求分发到不同的视图函数中,从而实现动态路由和URL处理。 URL路由系统有以下几个重要的组件: urls.py:路由器的配置文件,用于指定将URL映射到处理请求逻辑的视图函数。 re…

    Django 2023年5月16日
    00
  • Django—models相关操作

    一、在django后台admin管理页面添加自己增加的表结构   通过终端命令:python3 manage.py makemigrations, python3 manage.py migrate   我们在Django自带的后台管理页面可以看到Django自动生成表结构,那么要是想成自己的表结构需要这么做:   首先web应用的models.py文件里面…

    Django 2023年4月10日
    00
  • 详解Django用户认证系统权限管理

    Django是一个强大的Web框架,内置了完整的用户认证系统和权限管理功能,可以方便地实现用户身份验证和授权管理。 本文将详细介绍Django用户认证系统和权限管理的完整攻略,包括用户登录、注册、密码重置、用户权限和角色管理等方面的内容,并提供代码示例。 用户认证系统 用户登录 Django内置了用户登录视图和模板,可以方便地实现用户登录功能。以下是一个简单…

    Django 2023年3月13日
    00
  • django 开发之给admin 模块添加富文本编辑器

    第一步下载kindeditor  http://kindeditor.net/demo.php 下载下来后放到静态文件static 下面的js下面   接着在admin 模块文章类下引入这富文本编辑器: class ArticleAdmin(admin.ModelAdmin): 下面   接着添加一个文件名字为config.js  添加一些配置  

    2023年4月9日
    00
  • Django框架(二十)– Django rest_framework-权限组件

    一、权限组件的使用 # 用户信息表 class UserInfo(models.Model): name = models.CharField(max_length=32) # 写choice user_choice=((0,’普通用户’),(1,’会员’),(2,’超级用户’)) # 指定choice,可以快速的通过数字,取出文字 user_type=mo…

    Django 2023年4月16日
    00
  • django—表单集合Formset

    Formset(表单集)是多个表单的集合。Formset在Web开发中应用很普遍,它可以让用户在同一个页面上提交多张表单,一键添加多个数据,比如一个页面上添加多个用户信息。今天小编我就介绍下Django Formset的基础知识,Formset的分类以及如何使用Formset。     为什么要使用Django Formset 我们先来下看下Django中不…

    Django 2023年4月16日
    00
合作推广
合作推广
分享本页
返回顶部