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

相关文章

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

使用Nginx来共享文件的详细教程

《使用Nginx来共享文件的详细教程》有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用nginx来实现这个需求,本文将通过代码示例一步步教你使用... 在本教程中,我们将向您展示如何使用开源 Web 服务器 Nginx 设置文件共享服务器步骤 0 —

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

javafx 如何将项目打包为 Windows 的可执行文件exe

《javafx如何将项目打包为Windows的可执行文件exe》文章介绍了三种将JavaFX项目打包为.exe文件的方法:方法1使用jpackage(适用于JDK14及以上版本),方法2使用La... 目录方法 1:使用 jpackage(适用于 JDK 14 及更高版本)方法 2:使用 Launch4j(

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

SpringBoot项目引入token设置方式

《SpringBoot项目引入token设置方式》本文详细介绍了JWT(JSONWebToken)的基本概念、结构、应用场景以及工作原理,通过动手实践,展示了如何在SpringBoot项目中实现JWT... 目录一. 先了解熟悉JWT(jsON Web Token)1. JSON Web Token是什么鬼

手把手教你idea中创建一个javaweb(webapp)项目详细图文教程

《手把手教你idea中创建一个javaweb(webapp)项目详细图文教程》:本文主要介绍如何使用IntelliJIDEA创建一个Maven项目,并配置Tomcat服务器进行运行,过程包括创建... 1.启动idea2.创建项目模板点击项目-新建项目-选择maven,显示如下页面输入项目名称,选择

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo