将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 Rest Framework 序列化接口(PUT与Delete)设计 (前期版)!

    所有都是用 《Django Rest Framework 序列化接口(PUT与Delete)设计 (前期版)! 》中的代码,在view.py中新增 如下: #更新数据接口设计 def put(self,request,nid): #过滤出nid等于多少的对象。 book_obj = models.Book.objects.filter(pk=nid) ”’…

    Django 2023年4月12日
    00
  • django有哪些好处和优点

    Django是一个用于Web应用程序开发的高级Python框架。它具有以下好处和优点: 1. 快速开发 Django 提供了一系列迅速完成 Web 应用程序开发的工具。Django 的模板语言和自动化管理工具可以帮助开发者快速地建立并部署 Web 应用程序。此外,Django 还包含了许多自带的模块,可以快速解决常见的问题,例如用户认证、数据库操作、URL …

    Django 2023年5月15日
    00
  • django实现分页的方法

    下面就具体阐述这个问题: 1. Django中实现分页方法的基础知识 1.1 Paginator和Page类 Django中提供了Paginator类和Page类来实现分页功能。其中Paginator类负责分页部分逻辑,Page类则用于获取分页后的结果。 Paginator类有两个常用方法:- Paginator.count属性:获取总数据条数;- Pagi…

    Django 2023年5月16日
    00
  • Django uwsgi nginx pypy 环境搭建

      最近比较感兴趣使用Python进行Web开发。之前比较关注Pypy,所以这次就使用作为Web应用的运行环境。   下面说一下整体环境的搭建;   1.安装Pypy   Pypy的官网地址是http://pypy.org/download.html,下载完之后,解压缩到指定的文件夹。一般我会把所有的开发软件放在一个tools的文件夹下。   解压缩Pypy…

    Django 2023年4月9日
    00
  • 详解Django Form表单API

    Django的Form表单API是一种快速构建表单的方式,可以方便地处理用户提交的数据。以下是Django Form表单API的完整攻略,包括表单的创建、渲染、验证和处理。 创建表单 要创建一个表单,我们可以使用Django的forms模块创建一个继承自django.forms.Form的类。在表单类中,我们可以定义表单的字段和验证规则。以下是一个简单的表单…

    Django 2023年3月13日
    00
  • 使用django+nginx搭建网站

    https://blog.csdn.net/qq_42327424/article/details/109012658 https://www.cnblogs.com/shenh/p/10101344.html https://blog.csdn.net/qq_42314550/article/details/81805328?utm_medium=dist…

    Django 2023年4月13日
    00
  • django学习第九天—raw查询原生sql和python脚本中调用django环境和ORM锁和事务

    在模型查询api不够用的情况下,我们还可以使用原始的sql语句进行查询 方式1 raw() raw()方法,返回模型的实例django.db.models.query.RawQuerySet 实例 这个RawQuerySet实例可以像一般的QuerySet那也,通过迭代来提供对象实例 #注意:raw()语句查询必须包含主键 ret = models.Book…

    Django 2023年4月12日
    00
  • Python的开发环境安装(MySQL、Django、PyCharm)

    技术 版本 查看命令 官方文档 API文档 下载地址 MySql 8.0.18 D:\mysql-8.0.18-winx64\bin>mysql -u root -p https://www.mysqlzh.com/doc/24.html https://www.mysqlzh.com/doc/194.html https://dev.mysql.co…

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