在UOS 上部署 django + uwsgi + nginx 流程
前言:这篇主要是流程,不喜勿喷,虽然我知道在部署过程中 参照博客写的越详细越好。 强大的百度会解决一切的
爬了诸多坑 ,心累,必须总结!!
最近 芯片封锁闹的很凶 支持国产!!
UOS 统一操作系统 前身 深度 arm 架构 (国产)
开始安装(这里全部基于源码安装(手动安装)的方式)
1、安装nginx依赖包
ssl 功能 需要安装Openssl 网址:https://www.openssl.org/source/
gzip库需要 安装zlib 网址:http://www.zlib.net/zlib-1.2.11.tar.xz
rewrite模块需要 pcre 库 网址:https://ftp.pcre.org/pub/pcre/
源码安装步骤:(这里不演示)
1. tar -zxvf ***.tar.gz
2. cd ***
3. ./configure
4.make
5.sudo make install
小结: 1. 三个依赖包都是这样安装
2. 3-5步容易出坑 耐心点 复制错误到百度 你会得到你想要的
2、 安装nginx
奉上下载连接:https://nginx.org/download/nginx-1.16.1.tar.gz
安装方式: 参见上面 源码安装
相信我 你会出错 在第三小步 第四小步(如果没有 你可能是天选之子)还是那句话 复制错误到百度 你会解决的
配置环境变量:
这里希望记住 (既然你选择linux)配置环境变量的文件 /etc/profile
1. nginx 安装之后的路径 :/usr/local/nginx/sbin/
2. sudo vim /etc/profile
3. 在尾行添加 export PATH=$PATH:/usr/local/nginx/sbin
4. 配置完成 使用source /etc/profile
5. 在终端 敲下 nginx 如果 未找到命令 (在确保没写错 路径的情况下,重启试试)
在终端输入 nginx-t
又有错误吧 不慌! 可能是权限原因 ,观察报错信息 找到文件 修改权限(sudo chmod 755 文件)如果不是 :百度!
3、安装uwsgi
python3.7 -m pip install uwsgi
4、相信django就不用我介绍了吧
关键的点:
settings .py
ALLOWED_HOSTS = ['*',]
DEBUG = False
STATIC_ROOT='api/static' (这个路径决定你 python3.7 manage.py collectstatic 生成的静态文件夹路径 什么?你不知道collectstatic是干什么的?请看下文)
python3.7 manage.py collectstatic
你会得到一个文件夹 路径是 settings中 STATIC_ROOT 的路径,这个静态资源 后续会在nginx中引用 可以理解为 独立于django
至此 环境 都安装完成 !!
配置uwsgi
uwsgi --http :8888 --module eduonline.wsgi 执行它 看看 uwsgi是否正常
真正的配置 manga.py 的同级创建 一个 uwsgi.ini 文件
打开它 配置如下内容 千万不要 把注释写到 代码后面 否则 你会发现 错误是因为什么
[uwsgi]
# 应用服务IP
socket=0.0.0.0:8000
# 项目根目录
chdir=/home/api
wsgi-file=api/wsgi.py
# 指定wsgi模块,与nginx连接使用
module=api.wsgi
# web服务IP端口
#http = 0.0.0.0:9000
# 开启主进程管理模式
master=true
# 进程数
processes=4
# 每个进程的线程个数
threads=2
pidfile=/home/api/api/uwsgi.pid
# 日志文件一般会自动创建
daemonize=/home/api/api/uwsgi.log
# 不记录正常信息,只记录错误信息
#disable-logging=true
这么多参数 我怎么知道什么意思 请输入 uwsgi -h
执行 uwsgi --ini uwsgi 启动uwsgi 就用这个命令 因为什么都配置好了 呓? 什么没有说呀 请看uwsgi.ini daemonize找到这个文件
配置nginx
1. cd /usr/local/nginx/conf/
2. sudo vim nginx.conf
3.
server {
listen 8080;
server_name www.baixin.com; # 可以在hosts的文件里添加 DNS
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000;
}
location /static {
alias /home/baixin/Desktop/vs_python/prue_projects/api/api/static; # python3.7 manage.py collectstatic 生成的static
}
4. 重启 nginx -s reload
5. 浏览器 开网页
附:
日志很重要:nginx 日志 : /usr/local/nginx/log/
uwsgi日志: uwsgi.ini 配置的 daemonize
django的日志 :配置一个很重要
奉上简易版:
# 日志配置
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': './logs/api_debug.log',
},
},
'loggers': {
'django': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
},
}
在UOS 上部署 django + uwsgi + nginx 流程的更多相关文章
- [linux]centos7.4部署django+Uwsgi+Nginx
前言:我已经写了几个接口用来部署在服务器上的,首先选择django+Uwsgi+Nginx因为配置简单,比较符合python的简单操作功能强大的特点 然后对于django的一些版本在之前的文章写了 参 ...
- Centos 7 下部署Django + uWSGI + Nginx
1.废话 之前利用Django写了些测试工具,一直是直接 python manage.py runserver 8081这么来用的.用户量不大,倒也不影响什么.uWSGI+Nginx的性能肯定要好,s ...
- Ubuntu环境下部署Django+uwsgi+nginx总结
前言 这是我在搭建Django项目时候的过程,拿来总结记录,以备不时之需. 项目采用nginx+uwsgi的搭配方式. 项目依赖包采用requirements.txt文件管理的方式. 本地准备工作 确 ...
- 学习项目部署Django+uwsgi+Nginx生产环境部署
绪论 项目生产环境部署,是很重的一个知识点.第一,Django自带的服务器很简陋,由于测试和开发环境尚可,无法用于生产环境,保障安全性和可靠性.以及性能.此外,学习部署方式,还有利于了解生产部署后的项 ...
- django+uWSGI+nginx的工作原理流程与部署过程
django+uWSGI+nginx的工作原理流程与部署过程 一.前言 知识的分享,不应该只是展示出来,还应该解释这样做是为什么... 献给和我一样懵懂中不断汲取知识,进步的人们. 授人与鱼,不如授人 ...
- CentOS上部署Django+Nginx+Uwsgi环境
在CentOS上部署Django+Nginx+Uwsgi环境 奇谭 2016-09-01 评论 Linux python django nginx uwsgi VirtualEnv的作用:创建隔 ...
- Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx)
Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx) 一丶集群和Nginx反向代理 ...
- 10: Django + Uwsgi + Nginx 的生产环境部署
1.1 一些重要概念 1.Web协议介绍 Web协议出现顺序: CGI -> FCGI -> WSGI -> uwsgi 1. CGI: 最早的协议 2. FCGI: 比CGI快 ...
- Django Linux环境下部署CentOS7+Python3+Django+uWSGI+Nginx(含Nginx返回400问题处理、防火墙管理)
本文将介绍如何在Linux系统上部署Django web项目,本次部署基于下面的架构: CentOS7+ Python3.5 + Django1.11 + uWSGI + Nginx 亲测可行!!按照 ...
随机推荐
- 图灵学院笔记-java虚拟机底层原理
Table of Contents generated with DocToc 一.java虚拟机概述 二.栈内存解析 2.1 概述 2.2 栈帧内部结构 2.2.1 我们来解析一下compute() ...
- CppUnit使用和源码解析
前言 CppUnit是一个开源的单元测试框架,支持Linux和Windows操作系统,在linux上可以直接进行源码编译,得到动态库和静态库,直接链接就可以正常使用,在Windows上可以使用VC直接 ...
- docker 入门教程(5)——总结与学习资料
总结 registry:docker镜像仓库,集中存储和管理镜像,类似maven仓库. image:docker镜像,定义容器运行的文件和参数,可以看作是面向对象编程的类. container:doc ...
- 第37课 智能指针分析(指针特征操作符( -> 、 *)重载)
1. 永恒的话题:内存泄漏 (1)动态申请堆空间,用完后不归还 (2)C++语言中没有垃圾回收的机制 (3)指针无法控制所指堆空间的生命周期------------指针是变量,可以指向内存堆空间,但是 ...
- Spring集成Quartz定时任务
1.导入jar包 2.配置applicationContext.xml文件 <!-- 任务调度1 --> <!-- bean id="simpleJob" cla ...
- C/C++编程笔记:C语言实现连连看游戏,小白练手项目(源码分享)
本篇文章分享看题目就知道是写给初学者的,学的比较好的小伙伴也可以将自动算法等一些知识给加进去,希望对大家有帮助! 好了,当我们所有的准备工作做好之后,我们就可以来编写我们的C语言连连看游戏了! 其实这 ...
- MySQL一主多从配置和读写分离配置
一.一主多从配置 此次操作实现的是一主两从的方式.主服务器slave2(2.100),从服务器slave2-1(2.107),slave2-2(2.108);第一:准备主数据库 1. 在不同的机 ...
- RabbitMQ学习总结(1)-基础概念
1. 概念 1.1 AMQP协议 AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消 ...
- 【NOI2017】游戏 题解(2-SAT+缩点)
题目链接 题目大意:有四种场地$a,b,c,x$和三种赛车$A,B,C$,$a$不能跑$A$,$b$不能跑$B$,$c$不能跑$C$,$x$都可以跑.给定$n$个场地和$m$个四元组$(i,h_i,j ...
- C++文件操作和模板
1.数据层次 位 bit 字节 byte 域/记录 将所有记录顺序地写入一个文件---->顺序文件:一个有限字符构成的顺序字符流 C++标准库中:ifsteam,ofstream,fstream ...