利用Docker来搭建分布式文件系统FastDfs

    对于文件存储来说,一般情况下简单的处理就是在Django配置文件中配置存储目录,按照规则对文件进行上传或者下载。     实际上,当文件较少的时候,Django是可以应付的过来的。但当文件以海量形式出现的时候,Django就并不是那么好用了,于是Fast DFS应运而出。         FastDFS是一个开源的分布式文件系统,它对文件进行管理,功能包括......

在阿里云Centos上配置nginx+uwsgi+负载均衡配置

    负载均衡在服务端开发中算是一个比较重要的特性。因为Nginx除了作为常规的Web服务器外,还会被大规模的用于反向代理后端,Nginx的异步框架可以处理很大的并发请求,把这些并发请求hold住之后就可以分发给后台服务端(backend servers, 后面简称backend)来做复杂的计算、处理和响应,并且在业务量增加的时候可以方便地扩容后台服务器。     说白了就是,随着业务和用户规模的增长,仅仅一台服务器......

在阿里云Centos7.6上部署Supervisor来监控和操作各类服务

    Supervisor    是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。   &n......

利用Docker挂载Nginx-rtmp(服务器直播流分发)+FFmpeg(推流)+Vue.js结合Video.js(播放器流播放)来实现实时网络直播

    众所周知,在视频直播领域,有不同的商家提供各种的商业解决方案,其中比较靠谱的服务商有阿里云直播,腾讯云直播,以及又拍云和网易云的有偿直播服务,服务包括软硬件设备,摄像机,编码器,流媒体服务器等。但是其高昂的费用以及较高的准入门槛让许多个人和小型企业望而却步,本文要讲解的是如何使用nginx-rtmp搭建直播服务器,配合FFmpeg推流,在网页端vue.js作为载体利用video.js作为流播放器,打造一套可用的在线视频直播方案。 ......

在阿里云centos7.6上部署vue.js2.6前端应用

    在之前的一篇文章中详细阐述了如何部署Nginx代理uwsgi+django后台服务,现在轮到部署前端应用vue.js了,vue.js的好处就不多说了,其作为一个轻巧、高性能、可组件化的MVVM库,学习成本要比React要低,性能比脏检查的AngularJS不知道高到哪里去了。本文介绍如何在centos上部署vue.js应用。     建立一个简单的vue.js脚手架项目的完整命令 //安装cnpm npm i......

在阿里云Centos7.6中部署nginx1.16+uwsgi2.0.18+Django2.0.4

    一直以来想写一篇完整的在阿里云服务器上部署Django服务结合uwsgi,并且通过nginx做反向代理。因为网上的攻略鱼龙混杂,加上技术不断更新,一些年代久远的文章很容易让人在部署的过程中掉坑里,无法自拔,所以本篇文章以最新的阿里云服务器centos7.6为背景,完全阐述如何部署,亲测可用,其实要说难点完全没有,只要按部就班,就不会有问题。     当你购买了阿里云的ecs,涉及ecs的有两个密码,一定要搞清楚,一个......

Python版(3.7.2)支付宝(Alipay)退款(refund)接口的开发

    在之前的文章中介绍了如何编写支付宝支付接口 Python3.7.2+Django2.0.4 美多商城集成最新版支付宝支付接口(2019.04)     匆忙之中只考虑了支付,其实当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付款退还给买家,支付宝将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家帐号上。 交易超过约定时间(签约时设置的可退款时间)的订单无法进行退款 ......

利用vue.js双向绑定机制和vue-resource在前端异步上传文件

之前介绍了一个基于jquery的uploadify插件,可以用来上传文件:Django2.0.4+Uploadify3.0(h5版) 实现多文件异步上传和删除 但毕竟这是面向过程基于节点的插件,如果前端使用vue.js的脚手架,就要入乡随俗,利用vue.js自带的vue-resource来实现异步上传视频文件 首先安装 vue-resource  没必要全局安装,所以只在需要用到的项目中安装即可 cnpm install......

解决Django2.0.4+kindeditor4.11 跨域上传文件的问题

    在之前的一篇文章中介绍了如何将富文本kindeditor结合到django中:Django2.0.4 结合 KindEditor 4.1.11 富文本编辑器     在同域环境中是没有问题的,换句话说,也就是上传接口如果部署在前端页面同一个域名下是没有问题的,然而美多商城的系统架构是前后端分离,前端页面是vue.js服务,后端接口是django服务,分别部署在不同的服务器上,如果在vue.sj页面中想要使用kinde......

为美多商城(Django2.0.4)添加基于websocket的实时通信,主动推送,聊天室及客服系统

websocket是个啥? webSocket是一种在单个TCP连接上进行全双工通信的协议 webSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输 现在,很多网站为了实现推送技术,所用的技术都是轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数......

在vscode中为Django配置专属的语法检测提醒,防止误报语法错误

    Python插件中默认使用pylint用来检测python代码的书写是否有错误和是否符合良好的编码习惯。 Python官网(https://www.python.org/dev/peps/pep-0008/)专门有版块介绍推荐的python代码习惯,比如类,函数等的命名规则,遵守这些规则可以使自己的代码更加简明和易读。 然而pylint在面对django框架时表现的有些不足,因为django使用了大量的元编程(metaprogra......

使用ApacheBench来对美多商城的秒杀功能进行高并发压力测试

    秒杀功能众所周知,低廉的价格会引来很多用户趋之若鹜的争抢点击,导致一系列的服务器负载问题,服务器负载太大而影响程序效率也是很常见的,Apache服务器自带有一个叫AB(ApacheBench)的工具,可以对服务器进行负载测试 同时美多商城的秒杀功能也会被高负载影响,从而导致超卖现象 安装xampp软件 进入 c:/xampp/apache/bin 基本用法: ab  -n 全部请求数 -c 并发数测试u......

Python3.7.2+Django2.0.4 美多商城集成最新版支付宝支付接口(2019.04)

  最新版支付宝算法的改变就是RSA升级了RSA2,长度推荐2048,其他的逻辑变化不大,关于秘钥的生成在之前的一篇文章已经有所介绍   在Mac系统下生成新版支付宝(2019年4月)支付接口私钥和公钥   在Django中集成支付接口的前置操作就是需要安装pycryptodome   pip3 install -i https://pypi.......

在Mac系统下生成新版支付宝(2019年4月)支付接口私钥和公钥

  在做美多商城三方支付业务时,需要连入支付宝支付接口,众所周知,支付宝支付采用了RSA加密签名的安全通信机制,开发者可以通过支付宝的公钥验证消息的来源,同时使用自己的私钥进行信息加密。RSA算法及数字签名机制是服务窗平台与开发者网关安全通信的基础。  关于数字签名机制无非就是下面这四步,归根结底就是为了提高安全性,毕竟涉及钱了,马虎不得:  第一、发方首先有一个公钥/私钥对,它将要签名的报文作为一个单向散列函数的输入,产生一个定长的散列码,一般称为消息摘要。  第二、使用发放的私钥对散列码进行......

Mac系统下,让Iterm 4 来记住常用的登录账号和密码

  经常在Mac下使用Iterm4的朋友肯定遇见过这种情况,每次连接某个远程服务器总是要一遍遍的敲用户名、密码。 那么能不能像Windows的软件一样,可以直接让软件记住。每次只要点击一下,就直接ssh到远程服务器上面去了,答案当然是可以了,这里推荐使用expect脚本来实现。    #!/usr/bin/expect   set timeout 30   spawn ssh -p [......

Django2.0.4 结合 KindEditor 4.1.11 富文本编辑器

  KindEditor是一款还不错的开源的HTML可视化编辑器,主要用于让用户在网站上获得所见即所得编辑效果,兼容IE、Firefox、Chrome、Safari、Opera等主流浏览器。之所以推荐这一款编辑器,是因为它非常的轻量化,也不需要安装,从而耦合度非常低,无论是使用表单提交内容还是异步提交,都非常方便,这里简单介绍一下如何在Django2.0.4中使用这款富文本编辑器。   首先 在官网下载文件 http://kinded......

关于win下面Celery服务报 Process 'Worker' exited with 'exitcode 1' [duplicate]

  使用Celery服务运行异步任务或者定时任务的时候,服务虽然起了,但是会报错:  Celery Process 'Worker' exited with 'exitcode 1' [duplicate]  导致任务并未运行。  经过搜索可以定位到问题所在,是因为celery依赖库billiard版本过低,导致任务发生了阻塞,所以最好的解决方案就是升级billiard  执行 pip install --upgrade billiard  官方的解释是,billiard最好>=......