生产环境使用Nginx+uwsgi部署Django
在本地运行django应用相对来说还是挺方便的,使用自带的runserver启动即可。如果在生产环境部署django,就要多考虑一些问题了。比如静态文件处理,安全,效率等等
在网上找到了不错的部署的教程,讲解的还是很详细的,我就不重新再整理了。
五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上) – Django中国社区
五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(下) – Django中国社区
但是作为记录,我还是要记录下部署中遇到的问题:
(一)解决Django生产环境部署的静态文件丢失问题
有些时候,把程序放在生产环境,不过出于一些原因还没有配置nginx等环境,关闭了Debug,想看看网站,这时会出现静态文件无法访问,界面一塌糊涂的情况。使用如下命令即可成功使用静态文件
python manage.py runserver 0.0.0.0:8000 --insecure
(二)部署生产环境之前的准备
正如(一)中的方法只是测试时使用,如何处理静态文件,其实需要交给nginx等这样的高效软件来完成,所以在配置之前,先使用
python manage.py collectstatic
用来收集静态文件到static文件夹,然后就可以参照上面的教程,通过nginx来分配使用。
另外,推荐使用lnmp一键安装脚本,这样nginx,mysql等很多东西就不用设置了。
(三)重启uwsgi脚本
在上面的教程中提到的uwsgi,每一次修改程序后都应该重启uwsgi来使修改生效。在manage.py同级目录新建restart.sh脚本,内容如下:
killall uwsgi
uwsgi -x django_socket.xml
(这个django_socket.xml根据你起得名字替换)
—————-
这之后就是关于pythonic程序的一些修改:
这个程序是github上的一个开源django论坛程序。还是很不错的。
不过github上的版本还是有点点问题的。已经Fork了,但懒的忙的没时间去修改,就先在博客记录下。
(1)settings.py中应添加DOMAIN = ‘127.0.0.1’ (根据实际填写IP或域名)
(2)LOGO的路径问题,修改templates目录下的base.html模板,添加static
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="/static/favicon.ico" type="image/x-icon" />
(3)注册APP问题。
在accounts和people模块中的URL配置中,把accounts.views改为apps.accounts.views
OK,修改完毕。
虽然还有一些小问题,到时再读读源码估计就可以解决了。
其实安全问题还是比较重要的,admin直接暴露出来不是很好,接下来研究研究,看看是更改登陆admin的地址还是禁止IP段。
嗯,希望一切顺利~
生产环境使用Nginx+uwsgi部署Django的更多相关文章
- 填坑!!!virtualenv 中 nginx + uwsgi 部署 django
一.为什么会有这篇文章 第一次接触 uwsgi 和 nginx ,这个环境搭建,踩了太多坑,现在记录下来,让后来者少走弯路. 本来在 Ubuntu14.04 上 搭建好了环境,然后到 centos7. ...
- nginx + uwsgi 部署 Django+Vue项目
nginx + uwsgi 部署 Django+Vue项目 windows 本地 DNS 解析 文件路径 C:\Windows\System32\drivers\etc 单机本地测试运行方式,调用dj ...
- Python3.6+nginx+uwsgi部署Django程序到阿里云Ubuntu16.04系统
Python3.6+nginx+uwsgi部署Django程序到阿里云Ubuntu16.04系统 这个是写好的Django程序在本地机运行的情况,一个查询接口. 准备工作 1.首先购买一台阿里云的EC ...
- nginx + uwsgi 部署django项目
因项目需求,需要部署django项目,这里是基础的nginx配合uwsgi部署django,后续会采用docker部署的方式 环境: centos7 python3.5.4 django2.1.4 u ...
- Nginx+uwsgi部署django
0. 登录远程服务器并准备 ssh 用户@IP -p 端口 回车后,要求输入服务器密码,再输入密码 更新软件源 sudo apt-get update sudo apt-get upgrade 1. ...
- 使用Nginx+uWSGI部署Django项目
1.linux安装python3环境 参考链接:https://www.cnblogs.com/zzqit/p/10087680.html 2.安装uwsgi pip3 install uwsgi l ...
- CENTOS7 使用 Nginx + Uwsgi 部署 Django 项目
写在前面的话 最近总是见到有新学 Django 的朋友在部署自己的项目到 Linux 上面的时候运行不起来,所以就动手写了这篇博客. 对于不会搭建 Python 3 环境的朋友可以参考前面的博客[CE ...
- ubuntu+nginx+uwsgi部署django web项目
前言 将本地开发的django项目部署至linux上的uwsgi服务器,并配置nginx,完成基于ubuntu+nginx+uwsgi的上线运行.下面整理相关步骤. 服务器配置virtualenv 如 ...
- nginx+uwsgi部署Django项目到Ubuntu服务器全过程,以及那些坑!!!
前言:自己在windows上用PyCharm编写的Django项目,编写完后在windows上运行一点问题都没有,但是部署到服务器上时却Bug百出.百度,CSDN,sf,各种搜索寻求解决方案在历时3天 ...
随机推荐
- Android手机定位技术的发展
基于以下三种方式的移动位置:1. 网络位置 :2. 基站定位. 3. GPS定位 1 网络位置 前提是连接到网络:Wifi.3G.2G 到达IP址 比如:彩虹版QQ,珊瑚虫版QQ,就有一个功能显示对 ...
- Unity3d 实时折射和反射
这里只是张贴在实时折射和脚本反思shader, 大约NGUI第一部分请下载. 这个版本的主要缺点是折射平面部Layer必须是water层.假设有专家谁可以摆脱这一个.请记得把代码回该条,谢谢! Wat ...
- TFS:TF30042 数据库已满 处理方法
原文:TFS:TF30042 数据库已满 处理方法 今天早上,公司打来电话,说TFS(Team Foundation Server)微软源代码管理软件签入不了,报错:TF30042 数据库已满. 经过 ...
- Java并发编程之ConcurrentHashMap(转)
ConcurrentHashMap ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法.Concurrent ...
- 折返(Reentrancy)VS线程安全(Thread safety)
在Wiki上,折返例如,下面的定义(接) In computing, a computer program or subroutine is called reentrant if it can be ...
- Chapter 3 Protecting the Data(3):创建和使用数据库角色
原版的:http://blog.csdn.net/dba_huangzj/article/details/39639365.专题文件夹:http://blog.csdn.net/dba_huangzj ...
- 跟我一起学extjs5(37--单个模块的设计[5取得模块列表数据])
跟我一起学extjs5(37--单个模块的设计[5取得模块列表数据]) 写了几个月,总算有点盼头了,最终要从后台取得数据了.后台的spring mvc 和 service 仅仅能简单的 ...
- linux如果不进入window磁盘
最近,在windows8.1下安装ubuntu14.04,在windows沉睡.开放时间和进入选择进入系统选项,当时没有引起重视.他选择进入linux系统.但进入后,发现无法进入windows磁盘,百 ...
- Cts框架解析(7)-任务运行的调度室
TestInvocation /** * {@inheritDoc} */ @Override public void invoke(ITestDevice device, IConfiguratio ...
- Mac周边环境 goBASIC语言HelloWorld
1. 安装mercurial Mercurial 是一种轻量级分布式版本号控制系统,採用 Python 语言实现 能够输入hg命令查询系统是否安装mercurial,能够例如以下两种命令安装 $sud ...