Django线上部署代码修改失效问题
记一次django项目的线上部署维护问题,django+nginx
关于nginx反向代理服务器的介绍这里有一篇博客介绍的比较好:nginx的相关介绍
以及当一次客户端请求发出后,uwsig以及uWSGI,Nginx之间的大致流程:uWSGI、WSGI和uwsgi
一、问题描述
在将django项目部署到阿里云(nginx作为web服务器)上之后,使用宝塔控制面板修改项目源码,或者使用直接在终端修改,修改之后重启uwsgi和nginx无效。
二、问题分析
1、本地环境
在本地环境的时候,是使用Django为提供的轻量级的专门为开发用的Web服务器。默认情况下,服务器运行在IP地址127.0.0.1的8000端口上。
python manage.py runserver
如果要自定义服务器端口和地址,可以显式地传递一个IP地址和端口号给它。
python manage.py runserver 127.0.0.1:8080
注:manage.py是每个Django项目中自动生成的一个用于管理项目的脚本文件,需要通过python命令执行。manage.py接受的是Django提供的内置命令。
常用的内置命令有:
- runserver:开启本地web服务器
- makemigrations:对models.py的所有改动,并且将这个改动迁移到migrations(默认全局)
- migrate:migrations里面新改动的迁移文件更新数据库(默认全局)
- startapp:创建app
- startproject:创建项目
- createsuperuser:创建超级用户
在本地的时候,直接修改,然后重启runserver就可以效果,比较方便,但是到服务器上就出问题了。
2、问题所在
- 一方面:如果直接在服务器中修改源代码,由于Python本身对缩进的严格要求,会造成异常出错。
- 另一方面:在本地时候,使用 python manage.py runserver 来运行服务器。这只适用测试环境中使用。不用考虑uwsgi服务器,以及wsgi接口之间的问题,但是到真正的生产环境下,真正工作的是他们。
也就是说每次修改源代码,就需要重启服务器。
三、问题解决
在修改源码上传服务器之后,进入服务器项目目录,查看uwsgi进程
ps -ef|grep uwsgi
然后杀死所有进程
killall -9 uwsgi
再重新启动uwsgi
uwsgi -x projectname(项目名).xml
然后再宝塔或者直接命令重启Nginx
/usr/local/nginx/sbin/nginx -s reload
问题解决,项目所做相关修改正常显示。
Django线上部署代码修改失效问题的更多相关文章
- Django线上部署教程:腾讯云+Ubuntu+Django+Uwsgi(转载)
网站名称: 向东的笔记本 本文链接: https://www.eastnotes.com/post/29 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议.转载请注明出处! ...
- nginx+django线上部署
(一):背景在线 由于现在工作的需要,我需要使用Python来进行一个网站后台的开发,python之前接触过其语法的学习,基本的东西已经掌握,但是当时自学的时候是学得python3.5,而现在要使用p ...
- Django线上部署实战教程之Nginx+Gunicorn+Django篇
############################################# 推荐 nginx supervisor gunicorn 配置简单,运维方便. Nginx (engi ...
- Node+mongodb线上部署到阿里云
Node+mongodb线上部署到阿里云 部署使用的主要工具是pm2+nginx,使用码云的私有仓库,自动部署到服务器,私有仓库和服务器要事先设置好免密码登录.使用DNSPOD进行域名解析.事先准备好 ...
- Git版本控制,rsync同步文件,完成线上部署
之前项目开发完成,测试阶段,借着此时,由于公司暂时用两台aliyun ecs 做业务层,所以每次都需要同步线上文件,进而想着搞一搞服务器端(小公司,新项目,先小搞一把),搭建一套小的版本控制上线的 ...
- 分享下使用 svn,测试服务器代码自动更新、线上服务器代码手动更新的配置经验
分享下使用 svn,测试服务器代码自动更新.线上服务器代码手动更新的配置经验 利用SVN的POST-COMMIT钩子自动部署代码 Linux SVN 命令详解 Linux SVN 命令详解2 使用sv ...
- 关于docker线上部署时间问题
背景 公司线上部署采用docker swarm方式,这几天线上项目时间突然出了问题(ps:第一反应,我去,这也能出问题,代码里肯定藏毒了),线上时间总跟实际时间差八个小时.本着速战速决的原则,把所有时 ...
- FastAdmin 线上部署流程 (2018-05-03 更新)
FastAdmin 线上部署流程 首次部署 建立 git 环境. 建立 composer 环境. 建立 bower 环境. 将远程项目代码 git clone 到服务器上. 执行 composer i ...
- vue-router+webpack线上部署时单页项目路由,刷新页面出现404问题
使用vue项目,线上部署的时候,访问首页以及通过路由打开二级页面没有问题,但是一刷新就出现404现象 因为刷新页面时访问的资源在服务端找不到,因为vue-router设置的路由不是真实存在的路径. 解 ...
随机推荐
- 【PAT甲级】1079 Total Sales of Supply Chain (25 分)
题意: 输入一个正整数N(<=1e5),表示共有N个结点,接着输入两个浮点数分别表示商品的进货价和每经过一层会增加的价格百分比.接着输入N行每行包括一个非负整数X,如果X为0则表明该结点为叶子结 ...
- 洛谷 P2239 螺旋矩阵(模拟 && 数学)
嗯... 题目链接:https://www.luogu.org/problem/P2239 这道题首先不能暴力建图,没有简单方法,只有进行进行找规律. AC代码: #include<cstdio ...
- 关于GOM引擎启动时显示:windows socket error: 在其上下文中,该请求的地址无效。 (10049), on API 'bind'
GOM启动时网管登陆器显示:windows socket error: 在其上下文中,该请求的地址无效. (10049), on API 'bind'解决方法: 重新配置引擎控制台.在配置里取消双IP ...
- 计算机二级-C语言-程序设计题-190119记录-求出一个二维数组每一列的最小值。
//编写一个函数:tt指向一个M行N列的二维数组,求出二维数组每列中最小的元素,并依次放入pp所指的一维数组中.二维数组中的数在主函数中赋予. //重难点:求出的是每一列的最小值,这里要注意,学会简化 ...
- JS-this的使用
做前端开发已经半年之多了,前几天看见apply时心生疑惑,于是查阅了好多资料但还是不太理解,只知道是源于this的问题,今天偶然看到了阮一峰大佬的讲解js中的this问题(http://www.rua ...
- oracle查询表统计行数与注释
SELECT TABLE_NAME,NUM_ROWS,(select COMMENTS from user_tab_comments WHERE TABLE_NAME=C.TABLE_NAME) FR ...
- pycharm/IDEA等 windows 版 常用快捷键
- sparksql报错
执行时报错: org.apache.spark.sql.AnalysisException: Unable to generate an encoder for inner class `cn.itc ...
- 安卓手机短信Android SMS 对话号thread_id如何产生与变化
安卓mmssms.db的sms表的thread_id字段 一个短信号码对应的thread_id字段数字,在手机格机(恢复出厂设置 删除手机上的所有数据)和刷机后会更新.不过这也是显然的,格机和刷机都会 ...
- 【译】高级T-SQL进阶系列 (二)【下篇】:使用 APPLY操作符
[译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文链接:传送门. 使用OUTER APPLY 操作符 OUTER APPLY操作符工作起来和CROSS APPLY比较类似.唯一的 ...