Django Nginx Gunicorn Centos7 环境部署,将项目上线

2024-08-29 08:08

本文主要是介绍Django Nginx Gunicorn Centos7 环境部署,将项目上线,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

序言:相信很多人遇到了这样的问题,将自己的django项目完成后,准备部署到Linux上,遇到了很多的麻烦,网上的教程大多数使用python2的django项目,一旦用于python3后,就会出很多的bug。本教程详细描述python3 Django 1.11项目上线的详细过程

创建一个虚拟环境

# cd /home/
# mkdir djangoproject
# cd ./djangoproject/
# python -m venv djangoprojectenv

其中 python -m venv xxx 是python3自带的一种创建xxx虚拟环境的方式,这里我已经创建了一个 djangoprojectenv 虚拟环境

进入虚拟环境

# source djangoprojectenv/bin/activate

可以发现已经进入了虚拟环境,在命令行前有一个(djangoprojectenv) 标识,例如:

# (djangoprojectenv) [root@iz2zeb45dolegxb5nfuexez djangoproject]# 

安装工具 
使用pip时推荐大家使用豆瓣源,安装速度会飞快,例如:

# pip install -i https://pypi.douban.com/simple django
  •  

由于我使用的是阿里云服务器,用pip安装应用时,会自动加速,所以采用默认方式,大家如果觉得自己下载速度慢,可以采用豆瓣源

# pip install django
# yum install mysql-devel 
# pip install mysqlclient
# pip install gunicorn

创建django项目

# django-admin.py startproject djangoproject .
# ls

可以看到目录结构

# djangoproject  djangoprojectenv  manage.py

注意:创建djangoproject . 后面的 . 一定不要搞掉了

修改项目的settings

# vim djangoproject/settings.py 

修改settings.py中的数据库参数

DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'djangoproject','USER': 'root','PASSWORD': 'password','HOST': '127.0.0.1','PORT': '3306','OPTIONS': {'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"}}
}

注意修改数据库名、账号和密码

在settings.py 添加静态文件路径参数

STATIC_ROOT = os.path.join(BASE_DIR, "static/")

在settings.py 修改ip权限,允许所有ip访问

ALLOWED_HOSTS = ["*"]

然后保存文件,按esc :wq

在数据库中生成数据表

# ./manage.py makemigrations
# ./manage.py migrate

创建一个超级用户

# ./manage.py createsuperuser

收集静态文件

# ./manage.py collectstatic

这一步很重要,否则页面会乱码 
开启Django项目

# ./manage.py runserver 0.0.0.0:8000

你可以在你的浏览器访问服务器,输入ip和port,格式如下:

http://server_domain_or_IP:8000

还可以访问你的数据库

http://server_domain_or_IP:8000/admin

登入你自己设置的superuser查看数据库

测试Gunicorn是否能启动你的项目服务

# gunicorn --bind 0.0.0.0:8000 djangoproject.wsgi:application

访问ip地址看浏览器是否能正常查看内容(此时没有退出虚拟环境) 
完成测试后,按CTRL-C 停止 Gunicorn 运行

退出虚拟环境

# deactivate

创建一个 Gunicorn Systemd Service 文件

# vim /etc/systemd/system/gunicorn.service

修改内容如下:

[Unit]
Description=gunicorn daemon
After=network.target[Service]
User=root
Group=nginx
WorkingDirectory=/home/djangoproject
ExecStart=/home/djangoproject/djangoprojectenv/bin/gunicorn --workers 3 --bind unix:/home/djangoproject/djangoproject.sock djangoproject.wsgi:application[Install]
WantedBy=multi-user.target

一定要主要自己的工程路经和虚拟环境路径 
WorkingDirectory与ExecStart 修改为自己的路径

开启Gunicorn服务并开机自启

# systemctl start gunicorn
# systemctl enable gunicorn

配置nginx代理通过Gunicorn

# vim /etc/nginx/nginx.conf

添加内容如下:

server {listen       80;server_name  server_domain_or_IP;location = /favicon.ico { access_log off; log_not_found off; }location /static/ {root /home/djangoproject;}location / {proxy_set_header Host $http_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;proxy_pass http://unix:/home/djangoproject/djangoproject.sock;}}

注意修改自己的IP地址或域名,还有文件路径 
server_domain_or_IP 代表你的IP地址或域名

修改nginx的权限

# usermod -a -G root nginx
# chmod 710 /home/
# nginx -t

如果没有报错,就行下一步操作

开启nginx服务并开机自启

# systemctl start nginx
# systemctl enable nginx

现在,你可以访问你的ip了

注意:本文我是root用户登陆的

这篇关于Django Nginx Gunicorn Centos7 环境部署,将项目上线的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1117319

相关文章

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx