首先在整个应用上线前,应该有完整的单元测试去测试各模块的功能。通常需在写代码的过程中甚至之前需要写好单元测试,以便高效维护代码的设计结构。我们可以使用Python自带的UnitTest或者Django的TestCase,这里介绍下Django的TestCase。下图为Django TestCase的几个重要的基类:
WP Rocket缓存插件是当前最高效也是最灵活的WordPress静态缓存插件。WP Rocket在性能方面集成了所有最新功能:延迟图像加载,延迟加载javascipt,缩小html代码体积,连接和所辖javascript文件。WP Rocket还拥有自己的自托管爬虫机器人,它将访问您的站点并生成缓存文件,以便当人访问者访问您的站点时,他们会立即获得该页面的快速缓存版本。我们还有一个站点地图预载功能。
django 部署模式为 debug = False(debug = True 找不到静态文件基本是配置错误,去详细检查 settings.py 里的 STATIC_URL、STATICFILES_DIRS 配置)
建议输入yes,输入No的话还需要自己手动添加路径,否则conda将无法正常运行
mkvirtualenv --python='/root/anaconda3/envs/MyDjango/bin/python' MyDjango
Django通过django.contrib.staticfiles来管理静态文件。
编写uwsgi配置文件: 在项目的路径下面,创建一个文件叫做yingjoy_uwsgi.ini的文件,然后填写以下代码: [uwsgi] # Django相关的配置 # 必须全部为绝对路径 # 项目的路径 chdir = /srv/yingjoy # Django的wsgi文件 module = yingjoy.wsgi # Python虚拟环境的路径 home = /root/.virtualenvs/django-env-py2 # 进程相关的设置 # 主进程 master = true # 最大数量的工作进程 processes = 10 # socket文件路径,绝对路径 socket = /srv/yingjoy/yingjoy.sock # 设置socket的权限 chmod-socket = 666 # 退出的时候是否清理环境 vacuum = true 然后使用命令uwsgi --ini yingjoy.ini,看下是否还能启动这个项目。 安装nginx:
用过django的内置服务器127.0.0.1:8000都知道,如果debug=False的时候那么django就不会自己去寻找静态文件了,
Ubuntu中pip和pip3区别: pip默认给python2用,pip3默认给Python3使用
It is time to shed the burdens of the past year and come up fresh and alive.
Django关闭DEBUG模式后,就相当于是生产环境了,Django官网上指出如果是django框架一旦作为生产环境,那么它的静态文件访问接口就不应该从Django框架中走了,应该有独立的web环境,首推nginx 。
按照 Django 官方文档的指引,我们已经做好了一个投票应用。我们是在本地开发的,项目最终上线是要部署到服务器上的,本篇笔记记录了我个人部署的整个过程,仅供参考。
布署 从uwsgi、nginx、静态文件三个方面处理 服务器介绍 服务器:私有服务器、公有服务器 私有服务器:公司自己购买、自己维护,只布署自己的应用,可供公司内部或外网访问 公有服务器:集成好运营环境,销售空间或主机,供其布署自己的应用 私有服务器成本高,需要专业人员维护,适合大公司使用 公有服务器适合初创公司使用,成本低 常用的公有服务器,如阿里云、青云等,可根据需要,按流量收费或按时间收费 此处的服务器是物理上的一台非常高、线路全、运行稳定的机器 服务器环境配置 在本地的虚拟环境中,项目根目录下,执行
将项目上传到服务器上的 /srv 目录下。这里以 git 的形式为例, 打开终端, 依次输入如下命令:
修改/usr/local/var/www/static/目录的权限,使得django可以向其中 写入文件
目录[-] Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式。今天在Ubuntu上使用Nginx部署Django服务,虽然不是第一次搞这个了,但是发现还是跳进了好多坑,google了好久才搞定。想想还是把这个过程记录下来,免得下次再来踩同样的坑。 安装Nginx apt-get install nginx ubantu安装完Nginx后,文件结构大致为: 所有的配置文件都在 /etc/nginx下; 启动程序文件在 /usr/sbin/nginx下
Django+uwsgi+Nginx的工作模式如下图所示,三个服务各司其职,分别为:
基础环境不做介绍,在django开发web项目完成后,一直使用django自带的服务器进行调试: python manage.py runserver 0.0.0.0:8080
放置静态文件到线上环境的基本步骤很简单:当静态文件改变时,运行collectstatic 命令,然后安排将收集好的静态文件的目录(STATIC_ROOT) 搬到静态文件服务器上。取决于STATICFILES_STORAGE,这些文件可能需要手工移动到一个新的位置或者Storage 类的post_process 方法可以帮你。
马哥linux运维 | 最专业的linux培训机构 ---- 在本地运行django应用相对来说还是挺方便的,使用自带的runserver启动即可。如果在生产环境部署django,就要多考虑一些问题了。比如静态文件处理,安全,效率等等 在网上找到了不错的部署的教程,讲解的还是很详细的,我就不重新再整理了。 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上) – Django中国社区 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(下) – D
一句话,多看官方英文文档,多学习基础知识,尽量使用英文关键词搜索,多使用 stackoverflow,多使用轮子。
2.3 项目流程 其实网上很多教程,都是关于uwsgi+nginx部署django的,StackOverflow也有一些解决常见错误的方法,但是部署还是容易出问题,新手难解决。 归根到底是自己不了解整个项目的流程。教程都只教方法,但为什么这样部署,这样部署有什么好处,每个组件都起什么作用却只字不提。致使只要部署稍微有那么一点不同,就无可是从了。 所以说,项目流程和每个组件的用途才是此次部署最重要的部分。
在部署django开发的站点时,通常有两种选择方式,nginx+django+uwsgi或者django+nginx+gunicorn,本文不讨论apache方式,在linux下通常都使用nginx,速度快,还经常做代理服务器,功能强大。。 nginx+django+uwsgi个人觉得uwsgi配置较为麻烦,所以选择了gunicorn,一个开源Python WSGI UNIX的HTTP服务器,据说速度快(配置快、运行快)、简单,默认是同步工作,支持Gevent、Eventlet异步,支持Tornado。有兴趣可以自行查阅官方文档
本章知识点 1、urls子路由 2、APP内部的静态文件 知识点讲解 Django鼓励大家进行独立的松耦合开发 1、urls子路由系统 我们将所有的路由都放到了主urls当中,django支持我们自己编写子url. 1、在app当中创建urls.py文件
1.本地代码传输至 Linux /opt 下(目录自定义) # settings 配置 # django项目需要配置allow_hosts=['*'],允许所有主机访问 # debug=True #返回给项目一个debug信息,暴露了项目配置信息,因此在线上要关闭 2.环境准备 2.1虚拟环境 # 准备一个独立的虚拟环境 mkvirtualenv luffy_even 2.2解释器环境搬运 # 本地 pip3 freeze > requirements.py # 服务器 pip3 install -r r
nginx可以新建一个配置,放在项目目录,暂时不修改nginx的默认配置,端口号可以换一个,然后在/etc/nginx/conf.d/内新建一个软链接指向该配置文件,这样nginx在读取配置时会将该配置一起读进去。这样,访问端口号8080的请求便会指向我们自己的这个配置。
我大概部署了快2个星期了吧,从一开始的只能终端运行runserver,到昨天的只能
Nginx 是如何实现并发的?为什么 Nginx 不使用多线程?Nginx常见的优化手段有哪些?502错误可能原因有哪些?
本节主要讲解的内容是 Nginx 如何和 uWSGI 配合使用,以及如何使用 Nginx 配置 Django 的静态资源,在本节的最后我们还要对项目部署流程做一下全面详细的总结,本节将作为本教程的最后一节,后续会根据读者的反馈再增加相应的 Django 知识介绍,最后希望各位读者阅读完这套《Python Django框架基础教程》能有所收获,这将是作为笔者的我最大的荣幸。
博客的基础功能已经开发的差不多了,虽然还有很多地方可以完善,但我们还是希望早点把博客部署到服务器上,让他人可以通过外网访问。至于有待完善的地方,可以等部署完后一点点地迭代和改进。现在就让我们来把博客部署到服务器上吧!
Nginx是一款高性能的Web服务器和反向代理服务器。它具有轻量级、高并发和低资源消耗的特点,越来越受到广泛的关注和应用。
因为是root用户,所以默认打开的是root目录,千万不要把目录放到root目录下,不然后面配置Nginx之后,将会出现普通用户没有访问root目录的权限,造成静态目录访问权限不足,报403错误。
补充知识:Django项目上线后无法加载xadmin等的静态文件问题(django的settings中几个static设置项的关系)
因为Mysql数据库新建的时候,所有大写字母都变成了小写,但是在项目配置文件中,数据库的名字中还是用的大写字母,而在ubuntu系统中,是区分大小写的,导致在连接数据库时报错。
Nginx 是如何实现并发的?为什么 Nginx 不使用多线程?Nginx常见的优化手段有哪些?502错误可能原因有哪些? 二、面试官心理分析 主要是看应聘人员的对NGINX的基本原理是否熟悉,因为大
阿里云ECS服务,有时需要更新apt-get,故先要先执行第一步 使用:SSH连接
使用ECS服务,有时需要更新apt-get,故先要先执行第一步 使用:SSH连接 1:更新apt-get #sudo apt-get update 当用apt-get更新软件包时常出现错
整个项目文件,里面有两个文件夹,nginx_docker用于存放前后端静态文件,XZAndroidPlatform是整个django项目文件。
Mac直接在bash中输入ssh root@你的主机ip Windows请下载ssh远程连接工具例如Putty 腾讯云默认不能以root身份登录,请使用以下方式登录
Nginx和Apache和Tomcat的区别及优缺点 1、定义: 1)Apache Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页,它是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上。其属于应用服务器。 Apache支持模块多,性能稳定,Apache本身是静态解析,适合静态HTML、图片等,但可以通过扩展脚本、模块等支持动态页面等。 缺点:配置相对复杂,自身不支持动态页面。 优点:相对于Tomcat服务器来说处理静态文件是它的优势,速度快。Apache是静态解析,适合静态HTML、图片等。 (Apche可以支持PHPcgiperl,但是要使用Java的话,你需要Tomcat在Apache后台支撑,将Java请求由Apache转发给Tomcat处理。)
搭建静态网站,首先需要部署环境。下面的步骤,将告诉大家如何在服务器上通过 Nginx 部署 HTTP 静态服务。
创业公司由于时间、人员、资金等各方面的限制,系统需要的各个组件优先选择第三方服务,而不是自己搭建。一个创业开发项目都需要服务器操作系统、开发语言、web服务器、开发框架、数据库、缓存、静态文件存储、日志系统、业务监控、持续集成、代码管理、发布部署系统、文档管理等。现在按这些方面展开来讲。
参考文档: 腾讯云开发者实验室:https://cloud.tencent.com/developer/labs
首次可免费使用云主机 45 分钟 ,到期后云主机将被重置并退库,若想保留成果请及时留用。
前后端分离这个问题其实松哥和大家聊过很多了,上周松哥把自己的两个开源项目部署在服务器上以帮助大家可以快速在线预览(喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了),然后群里就有小伙伴想让松哥来聊聊如何结合 Nginx 来部署前后端分离项目?今天我们就来聊一聊这个话题。
Django 2.1.7 创建应用模板 Django 2.1.7 配置公共静态文件、公共模板路径 Django 2.1.7 模板语言 - 变量、标签、过滤器、自定义过滤器、模板注释 Django 2.1.7 模板继承 Django 2.1.7 模板 - HTML转义 Django 2.1.7 模板 - CSRF 跨站请求伪造 Django 2.1.7 模板 - 图片验证码的实现 Django 2.1.7 模板 - 动态URL 反向解析
本文主要介绍如何在 Linux 系统上安装高性能的 HTTP 服务器 —— Nginx、并在不改变原有网站结构的条件下用 Nginx 来提升网站的访问速度。 Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。 Igor 将源代码以类 BSD 许可证的形式发布。尽管还是测试版,但是,Nginx
5)在templates/assetinfo/下创建static_test.html文件。
在进行前端页面开发时,为了调试方便,需要在本地启动一个静态文件服务器,而不需要与后端api服务一起部署。
领取专属 10元无门槛券
手把手带您无忧上云