Nginx+Uwsgi+Django 项目部署到服务器的思路详解

首先先说一下思路:

1.本地django项目打包 主要用到的是 python自带的distutils.core 下的 setup,具体代码在下面,主要讲的两个问题是package主要打包为和目录同级的代码,例如:TCMS如果还有一个子文件夹,那就不能自动打包了。这个时候需要用到data_files。glob(*filename)文件名模式匹配,不用遍历整个目录判断每个文件是不是符合。

from distutils.core import setup
import glob

setup(
 name = "demo",
 version = "0.1",
 packages = ['author_zxx','TCMS','static'],
 data_files= glob.glob('templates/*.html')
 )

2.打包用到的木块,也就是python的库,pip freeze >> requirement.txt (requirement.txt 问文件名,随便起)

pip freeze > requeirement.txt

3.服务器安装虚拟环境(非常重要,这一步一定要在开始。)

yum install virtualenv

yum install cirtualenvwrapper

4.创建虚拟环境 并且 指定虚拟换 用到的python 解释器版本

# 创建一个项目目录
cd my_project

# 创建虚拟环境 my_project_env 为虚拟环境的名称
virtualenv my_project_env

# 指定虚拟环境所用到的python解释器版本 -p后面为python解释器存放的路径, my_project_env 为虚拟环境的名称
virtualenv -p /usr/bin/python2.7 my_project_env

# 创建完成虚拟环境之后会生成一个文件夹,之后在bin文件夹中会有一个activate,我们在使用虚拟环境需要激活虚拟环境,source activate。
source my_project_env/bin/activate

#退出虚拟环境
deactivate

5.在虚拟环境中安装django 和 uwsgi 。要指定安装版本和开发环境要一样

pip install django==3.0.4

pip install uwsgi

6.创建django中的项目

# . 表示在当前目录下创建,如果不加,会在project_name 下创建一个同名的目录。
django-admin startproject 'project_name' .

7. 将项目通过FileZilla 或者其他交互软件,传入到刚刚所创建的目录中。

8.项目上传完毕之后,需要安装我们所需要的包。

# 刚刚 pip freeze > requirement.txt 所得
pip install -r requirement.txt

9.完成之后,可以通过 python manage.pu runserver 进行测试,是否成功。显示出下面得内容,即为成功。

May 08, 2020 - 10:53:33
Django version 3.0.4, using settings 'TsmWeb.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

10.之后我们需要安装uwsgi替我们代替 python manage.py runserver. 因为在生产环境中我们不可能一直手动得去开启服务器,这个时候就需要uwsgi,刚刚已经安装过uwsgi。我们在服务器项目目录下创建一个test.py 文件。

# test.py

def application(env, start_response):
 start_response('200 OK', [('Content-Type','text/html')])
 return "Hello World"

11. 之后在linux 命令行输入

uwsgi --http :8001 --wsgi-file /‘路径,从跟开始'/test.py

如果出现下面得代码,则表示成功:

*** Starting uWSGI 2.0.18 (64bit) on [Fri May 8 11:00:36 2020] ***
compiled with version: 4.8.5 20150623 (Red Hat 4.8.5-39) on 07 May 2020 02:26:03
os: Linux-3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020

12.之后我们需要安装Nginx

yum install -y pcre pcre-devel

yum install -y zlib zlib-devel

yum install gcc-c++
yum install -y openssl openssl-devel

wget -c https://nginx.org/download/nginx-1.14.0.tar.gz

tar -zxvf nginx-1.14.0.tar.gz

cd nginx-1.14.0
./configure

make
make install

13.之后测试nginx是否可以正常使用,我们需要进到nginx文件下得sbin/ 目录,运行  ./nginx ,之后在浏览器访问我们地址即可。如果出现 Welcome to Nginx! 即表示成功

14.现在是nginx和uwsgi配置,这个也是最头疼的。

# uwsgi 官网
https://uwsgi-docs.readthedocs.io/en/latest/

# nginx主要问题在 nginx.conf,下面附上详解
https://www.jb51.net/article/131362.htm

总结

到此这篇关于Nginx+Uwsgi+Django 项目部署到服务器的文章就介绍到这了,更多相关nginx uwsgi django 项目部署内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Django + Uwsgi + Nginx 实现生产环境部署的方法

    如何在生产上部署Django? Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. uwsgi介绍 uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换. 要注意 WSGI / uwsgi / uWSGI 这三个概念的区分. 1.WSGI是一种Web服务器网关接口.它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架

  • uwsgi+nginx部署Django项目操作示例

    本文实例讲述了uwsgi+nginx部署Django项目操作.分享给大家供大家参考,具体如下: uWSGI概述 uWSGI 是一个全功能的 HTTP 服务器,可以把 HTTP 协议转化成语言支持的网络协议. 安装uwsgi 使用pip安装即可 pip install uwsgi 安装完成后可测试 #vim test.py def application(env, start_response): start_response('200 OK', [('Content-Type','text/ht

  • 详解Django+Uwsgi+Nginx 实现生产环境部署

    uwsgi介绍 uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换. 要注意 WSGI / uwsgi / uWSGI 这三个概念的区分. WSGI是一种Web服务器网关接口.它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范. uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信. 而u

  • Centos部署django服务nginx+uwsgi的方法

    1.安装python3 yum -y install wget gcc make zlib-devel readline-devel bzip2-devel ncurses-devel sqlite-devel gdbm-devel xz-devel tk-devel openssl-devel wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz xz -d Python-3.6.1.tar.xz tar -xvf P

  • Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程

    具体环境: Ubuntu 14.04 Python 2.7.6 Django 1.7.1 Virtualenv name:test Nginx uwsgi 假设 项目文件夹位于 /data/www/ts 设置保存在 ./conf 复制代码 代码如下: virtualenv name = test domain name = example.com django+uwsgi的部署实在是太蛋疼了..网上已有的教程似乎有新版本的兼容问题.最后跑到uwsgi官网上找的教程终于跑通了.. 不过官网的教程似

  • django2+uwsgi+nginx上线部署到服务器Ubuntu16.04

    1.前期准备 1.打开Terminal终端,执行以下命令,将项目所需要的依赖包,都记录到一个文件内备用. pip freeze >requirements.txt 2.将项目文件夹→右键→添加压缩文件,压缩为zip包 3.准备软件 1.xshell(用于远程操作服务器)2.FileZilla(用于从客户端将项目包上传到服务器)3.Navicat 12 (用于同步数据库) 4.环境云 服务器/云主机:京东云 (云服务还是要选大厂的,我也试过一些比较小的厂的云服务,不说是哪家了,哇,简直是坑啊,各种

  • 解决nginx+uwsgi部署Django的所有问题(小结)

    最近,自己暑假写的小项目也算完毕了,想着投放到自己云服务器上,本来以为只要打开端口运行python3 manager runserver 0.0.0.0:80就搞定了,最后才知道这只适用于Django的开发模式,只支持单用户访问,既然如此,那么就得需要web服务器进行部署了.我便使用了nginx nginx? 为什么是nginx? 首先我觉得它小,很轻量级,用着简便,没有apache那么庞杂,并且网上都推荐nginx部署Django. 安装 这里直接略过,说一点Linux用户推荐大家源码安装,因

  • Nginx+Uwsgi+Django 项目部署到服务器的思路详解

    首先先说一下思路: 1.本地django项目打包 主要用到的是 python自带的distutils.core 下的 setup,具体代码在下面,主要讲的两个问题是package主要打包为和目录同级的代码,例如:TCMS如果还有一个子文件夹,那就不能自动打包了.这个时候需要用到data_files.glob(*filename)文件名模式匹配,不用遍历整个目录判断每个文件是不是符合. from distutils.core import setup import glob setup( name

  • JavaWeb项目部署到服务器详细步骤详解

    JavaWeb项目部署到服务器详细步骤 本地准备 在eclipse中将项目打成war文件:鼠标右键要部署到服务器上的项目 导出项目数据库文件 MySql导出数据库文件方法:利用Navicat for MySQL.鼠标右键要导出的数据库,选择转出SQL文件即可 Oracle导出数据库文件:利用PLSQL Developer即可 服务器准备 基本的jdk安装,服务器(比如tomcat)还有数据库的安装都必不可少 将项目的war文件复制到tomcat的wepapps文件夹下即可 创建和代码中数据库连接

  • Vue项目webpack打包部署到服务器的实例详解

    Vue项目webpack打包部署到服务器 这篇博文主要说的就是我今天遇到的问题,而且在经过我的询问,好多人在打包部署的时候都遇到了一些问题,下面就来说下,如何将Vue项目放置在服务器上,这里以Tomcat为例. 必须要配置的就是/config/index.js 在vue-cli webpack的模板下的/config/index.js,我们可以看到assetsPublicPath这个键,并且这个东西还出现了两次,我第一次打包的时候,只是修改了最下面的assetsPublicPath,将它从'/'

  • 基于IDEA部署Tomcat服务器的步骤详解

    简介 ​ 基于IDEA部署Tomcat服务器,并在上面创建第一个servlet程序,实现前后端交互.然后做一个简单的四则运算计算器. ​ 本程序基于2021年最新版IDEA,解决的与老版本配置不同问题 idea2021 最新 jihuo 教程(无线重制使用) 步骤一 安装Tomcat(前提已经安装好JDK) ​ 1.Tomcat是免费的服务器,直接在官网下载即可 ​ 2.压缩包下载好后直接将其解压到指定路径下 ​ 3.在安装路径下有一个bin文件夹,在里面找到startup.bat文件,双击运行

  • django自带调试服务器的使用详解

    开启服务器 在终端(虚拟环境)下输入: python manage.py runserver 就可以开启服务器 输入后,注意随后弹出的服务器地址. 点击后就会跳转至调试服务器. 设置服务器 我们只进入了调试服务器却什么都做不了,那我要它何用? 我们返回我们的终端,点击绿色的小加号. 这样我们就可以一边保持服务器的运行一边对我们的服务器进行操作了. 我们先来设置一下我们服务器的超级管理员以方便我们的后续操作. 在终端输入以下指令. python manage.py createsuperuser;

  • Vue项目全局配置微信分享思路详解

    这个项目为移动端项目,主要用于接入公众号服务.项目采用两种登录方式,微信授权登录以及账号密码登录.对于移动端项目而言,为了便于项目扩展以及提供开发热更新速度,项目分为不同的模块,每个模块是一个单页面应用.页面分为两种,一种是需要用户登录之后才能浏览,另一种是用户无需登录即可浏览.无论哪一种,均配置微信分享. 使用的技术 1.使用vue作为框架 2.使用vux作为UI组件库 全局配置微信分享思路 1.区分一般和特殊,一般情况,全局配置默认分享文案:特殊情况分两种,一种是分享内容不需要异步获取,则在

  • node+js搭建时间服务器的思路详解

    目录 时间服务器 1.思路准备 1.1思路来源 1.2思路前提要求 1.3技术要求 2.实现 2.1实现准备 2.2搭建前台页面 2.3搭建后台服务器 2.3.1搭建后台 2.3.2后台处理要发送的数据 2.4前端处理获取的数据 2.4.1时间数据 2.4.2天气信息 2.5效果展示 3.总结 时间服务器 时间服务器 1.思路准备 1.1思路来源 这是在我的软件老师给的期末课程设计他要的是通过自己的知识储备,来设计一个前后端数据的展示与发送 1.2思路前提要求 1.搭建一个前台页面,要求简单易懂

  • Django项目创建及管理实现流程详解

    1.主题 这部分教程主要介绍如何通过Pycharm创建.管理.运行一个Django工程.对于Django模块的相关知识大家可以参考Python社区. 2.准备环境 Django版本为2.0或更高Pycharm版本2017Python3.6解释器 3.创建一个新工程 实际上所有工程的创建都可以通过单击Welcome screen界面上的Create New Project按钮来实现. 如果你已经打开了一个工程,可以通过菜单栏File → New Project...来创建一个新的工程.接下来在Cr

  • 把vue-router和express项目部署到服务器的方法

    - 首先确定此项目在本地能够运行成功 在本地命令行中输入npm run start,无报错,且打开127.0.0.1:3000 有写的路由为/的页面,如图 此为文件层级关系 front为前端文件 xk3为后台express与数据库mysql链接的文件 用命令行进入后台并且运行,启动成功 这是路径为/的页面 在浏览器中输入路径http://localhost:3000/ 浏览器中显示WelCome to express 至此此项目在本地运行成功,我们现在就要放到服务器上. - 准备工作 此前服务器

  • Centos8下django项目部署 nginx+uwsgi的教程

    1.虚拟环境virtualenv安装 1.安装virtualenv pip3 install virtualenv 2.创建目录,把项目文件传过来 mkdir My  cd My 3.创建独立运行环境-命名 virtualenv --no-site-packages --python=python3  venv1   #创建独立的环境,并且指定解释器是python3 4.进入虚拟环境 source venv1/bin/activate   #此时进入虚拟环境(venv1) 5.在虚拟环境中安装第

随机推荐