Django线上部署实战教程之Nginx+Gunicorn+Django篇
#############################################
推荐 nginx supervisor gunicorn 配置简单,运维方便。
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
Gunicorn是一个unix上被广泛使用的高性能的Python WSGI UNIX HTTP Server。 和大多数的web框架兼容,并具有实现简单,轻量级,高性能等特点。
gunicorn 应用服务器的运行与 Nginx 反向代理
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。
supervisor 控制 gunicorn 服务器
#############################################
1.先查看nginx配置是否正确
执行下面的命令:
nginx -t #查看nginx配置是否正确 也可以切换到nginx的安装目录下的sbin目录下,执行: ./nginx -t 2.查看nginx是否启动成功
ps -ef | grep nginx #查看nginx端口 netstat -ntpl |grep 3306 我先执行了1,2,发现nginx配置没问题,且启动成功了!那么,我预感到是端口没开放,因为用的是阿里云的服务器,需要先配置安全组。 配置了安全组之后,就可以访问了,但是报错
502 Bad Gateway nginx/1.10.3 (Ubuntu)
#############################################
Nginx配置地址:
sudo vim /etc/nginx/sites-enabled/djangoblog.com.conf 日志地址:
access_log /var/log/nginx/django_access.log;
error_log /var/log/nginx/django_error.log; 通过上面的铺垫,我们来看看如何动态监控日志尾部,那就是使用命令:tail -f 文件名, 日志报错:
2020/02/21 23:15:53 [error] 3440#3440: *1 open() "/root/python//DjangoBlog/collectedstatic/static/CACHE/js/output.c71e77581f2f.js" failed (13: Permission denied), client: 119.80.137.248, server: 123.57.142.175, request: "GET /static/CACHE/js/output.c71e77581f2f.js HTTP/1.1", host: "123.57.142.175:8090", referrer: "http://123.57.142.175:8090/"
这个没有权限的问题,需要修改Nginx的配置文件,把user改为root,
2020/02/21 21:04:15 [error] 761#761: *22 connect() failed (111: Connection refused) while connecting to upstream,
client: 139.224.238.50, server: 123.57.142.175, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8000/", host: "123.57.142.175"
这个问题,我是先启动了gunicorn,然后莫名其妙就好了,
#############################################
静态资源无法加载出来,Nginx配置出了问题,
nginx的配置问题 配置 nginx 主要进行两个文件的修改,两个文件都在/etc/nginx 目录下 一个是 nginx.conf,需要修改的内容为: 将第一行定位用户的名字改为你的用户文字,我的是 root
第二个文件时 sites-available/sites-enable 目录下的 default 文件
nginx指定文件路径有两种方式root和alias
nginx指定文件路径有两种方式root和alias,指令的使用方法和作用域:
[root]
语法:root path
默认值:root html
配置段:http、server、location、if
[alias]
语法:alias path
配置段:location root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。
root的处理结果是:root路径+location路径
alias的处理结果是:使用alias路径替换location路径
alias是一个目录别名的定义,root则是最上层目录的定义。
还有一个重要的区别是alias后面必须要用“/”结束,否则会找不到文件的。。。而root则可有可无~~
#############################################
#############################################
Django线上部署实战教程之Nginx+Gunicorn+Django篇的更多相关文章
- Django线上部署教程:腾讯云+Ubuntu+Django+Uwsgi(转载)
网站名称: 向东的笔记本 本文链接: https://www.eastnotes.com/post/29 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议.转载请注明出处! ...
- Django线上部署代码修改失效问题
记一次django项目的线上部署维护问题,django+nginx 关于nginx反向代理服务器的介绍这里有一篇博客介绍的比较好:nginx的相关介绍 以及当一次客户端请求发出后,uwsig以及uWS ...
- nginx+django线上部署
(一):背景在线 由于现在工作的需要,我需要使用Python来进行一个网站后台的开发,python之前接触过其语法的学习,基本的东西已经掌握,但是当时自学的时候是学得python3.5,而现在要使用p ...
- Docker实战 | 第三篇:Docker安装Nginx,实现基于vue-element-admin框架构建的项目线上部署
一. 前言 在上一文中 点击跳转 通过IDEA集成Docker插件实现微服务的一键部署,但 youlai-mall 是前后端分离的项目,除了后端微服务的部署之外,当然还少不了前端工程的部署.所以本篇讲 ...
- Node+mongodb线上部署到阿里云
Node+mongodb线上部署到阿里云 部署使用的主要工具是pm2+nginx,使用码云的私有仓库,自动部署到服务器,私有仓库和服务器要事先设置好免密码登录.使用DNSPOD进行域名解析.事先准备好 ...
- 关于docker线上部署时间问题
背景 公司线上部署采用docker swarm方式,这几天线上项目时间突然出了问题(ps:第一反应,我去,这也能出问题,代码里肯定藏毒了),线上时间总跟实际时间差八个小时.本着速战速决的原则,把所有时 ...
- vue-router+webpack线上部署时单页项目路由,刷新页面出现404问题
使用vue项目,线上部署的时候,访问首页以及通过路由打开二级页面没有问题,但是一刷新就出现404现象 因为刷新页面时访问的资源在服务端找不到,因为vue-router设置的路由不是真实存在的路径. 解 ...
- 【Maven篇】---解决Maven线上部署java.lang.ClassNotFoundException和no main manifest attribute解决方法
一.前述 maven 线上部署的话会出现一些问题比如java.lang.ClassNotFoundException或者no main manifest attribute的话,是因为maven 配置 ...
- FastAdmin 线上部署流程 (2018-05-03 更新)
FastAdmin 线上部署流程 首次部署 建立 git 环境. 建立 composer 环境. 建立 bower 环境. 将远程项目代码 git clone 到服务器上. 执行 composer i ...
随机推荐
- VUE.js入门学习(5)- 插槽和作用域插槽
插槽: (1)用法 以前的写法:如果内容很多的话,就很烂了- 插槽写法:(PS:组建名不能用保留关键字) (2)具名插槽 (3)作用域插槽 必须template开始和结尾,这个插槽要声明我从子组建接收 ...
- python学习---format、当前时间
1.数字格式化 format < :左对齐 > :右对齐 a = “随机数是{:>4d}”.format(1) 结果是0001 2.当前时间 import dat ...
- 洛谷 P2719 搞笑世界杯
题目传送门 解题思路: f[i][j]表示买i张A票,j张B票的概率. AC代码: #include<iostream> #include<cstdio> using name ...
- Unity获取游戏对象详解
我觉得Unity里面的Transform 和 GameObject就像两个双胞胎兄弟一样,这俩哥们很要好,我能直接找到你,你也能直接找到我.我看很多人喜欢在类里面去保存GameObject对象.解决G ...
- 翻译——3_Gaussian Process Regression
使用不同的机器学习方法进行预测 续上篇2_Linear Regression and Support Vector Regression 高斯过程回归 %matplotlib inline impor ...
- 实验吧web-易-这个看起来有点简单
看url中有id=1,明显的sql注入,这里使用手工注入不适用sqlmap,想用的话参考文章(传送门) 1.首先测试有没有sql注入漏洞, http://ctf5.shiyanbar.com/8/in ...
- F5 基本原理介绍(转)
原文链接:http://kuaibao.qq.com/s/20180308G1NPIS00?refer=cp_1026文章来源:企鹅号 - 民生运维 1. 负载均衡的基本单位 目前负载均衡设备的基本处 ...
- JAVA课程设计——俄罗斯方块
0.负责模块为可视化界面,技术栈为 (1)异常处理 (2)多线程 (3)文件存储 (4)Java swing 1.登陆界面 我的代码 import java.awt.Color; import jav ...
- UML的用例图
1.概念理解 (1)用例图是UML多种图形语言的一种,最能体现系统结构,直观展现系统功能模块模型 (2)用例图用于描述用户与用例(角色与功能模块)之间的关联关系 (3)常用Power Designer ...
- Vue 源码学习(1)
概述 我在闲暇时间学习了一下 Vue 的源码,有一些心得,现在把它们分享给大家. 这个分享只是 Vue源码系列 的第一篇,主要讲述了如下内容: 寻找入口文件 在打包的过程中 Vue 发生了什么变化 在 ...