- 博客(20)
- 资源 (2)
- 收藏
- 关注

原创 nginx proxy_cache 缓存配置
前言:由于本人工作原因,涉及到网络直播领域,其中视频的回放下载,涉及到了一些视频下载方面的技术。针对于一个完整视频的下载,目前市面上的主流做法是,先将整个视频流切片,存储到文件服务器中,在用户需要观看回放视频时。通过一个视频回源服务器,去文件服务器中逐个请求切片,返回给用户播放。今天着重探讨的是关于回源服务器缓存的配置以及合理的缓存策略。通过给回源服务器配置缓存的案例,详细讲解一整套缓
2016-11-29 00:16:58
72052
5
原创 pdo调用方法以及防sql注入原理
前言在web站点中,经常会遇到各种各样的网络攻击,其中sql注入是非常常见的一种,所以需要对sql注入进行防护。目前许多站点服务端基本采用php+mysql的方式。对应php连接mysq而言,l有三种方式:mysql扩展、mysqli、pdo。前两者不在此多说,网上有较多的学习资料。今天我们主要要讲解的是php如何通过pdo连接mysql数据库,以及为什么使用pdo连接mysql数据库具有
2016-12-24 22:15:07
19227
原创 mysql实现hash分表
mysql作为站点后端的重要数据落地组成部分,可谓是运用相当之广泛。在web应用中,往往庞大的数据会最终落地到mysql中,当一张mysql单表记录了上10亿的记录时,性能往往不会很理想,于是我们往往会将一张单表拆分成多张相同的分表。今天我们主要来讲如何合理的进行分表。1、对一个字段进行分表:这种分表方式,是我在工作中直接应用到的一种方式:举一个简单的例子:比如电商网站,需要记录用
2016-12-24 17:10:24
28762
原创 nginx+php的配置与原理
采用nginx+php作为webserver的架构模式,在现如今运用相当广泛。然而第一步需要实现的是如何让nginx正确的调用php。由于nginx调用php并不是如同调用一个静态文件那么直接简单,是需要动态执行php脚本。所以涉及到了对nginx.conf文件的配置。这一步对新手而言一般需要网上查资料,对于一般的熟手而言,也有不少同学并没有搞透彻为何要如此这般配置。本文的主要内容为如何在ngin
2016-11-26 23:29:57
83047
原创 HTTPS原理浅谈
由于工作的原因,发现单纯的使用http协议非常不安全,所以逐渐对安全问题引起了重视,于是对https协议进行了一定的了解,接下来我会用浅显易懂的语言来描述什么是https以及它的原理,欢迎拍砖。一、什么是HTTPS:对应什么是HTTPS网上有大把大把的解释,这里做一个浅显的总结:HTTPS协议是HTTP协议的安全性加强版协议,HTTP协议在浏览器与站点之间采用未加密的明文传输,
2016-11-26 19:17:07
11602
1
原创 php中使用hash_hmac函数实现HMAC-SHA1签名算法的来龙去脉
前言最近工作中频繁和其他部门甚至公司进行接口上的对接,不免接触到林林总总的签名验权算法。其中属HMAC-SHA1签名算法最多,刚开始接触的时候我也觉得有一点懵,慢慢搞清楚了原理,所以在这里跟大家如何理解这种签名算法中涉及到的各种各样的东西。扫盲:首先做个简单的扫盲1、md5(md家族)Message Digest Algorithm 缩写为MD,消息摘要算法,一种被广泛使用
2016-11-23 23:20:26
53522
原创 thinkphp自定义404页面
使用EmptyController +_empty方法。当我们使用thinkphp框架对外提供服务时,如果不采取特殊配置,当一个请求没有访问到服务端资源,会直接返回404,并且由于thinkphp的特性,会返回一个带有thinkphp个性色彩的404页面。这样的页面至少有两点不太好:1、暴露了服务端的技术选型,给站点攻击者提供了直接的信息。2、页面反馈不友好
2016-11-22 17:55:46
8676
原创 php异常处理基本方法
当一个php脚本运行时,为了防止脚本运行崩溃,亦或是当php作为webserver,为了防止php程序出错,抛出httpcode500错误,我们常常需要对php程序做异常处理。今天介绍的是最基本的异常处理方法:一般而言,当程序调用第三方库等操作时,有可能存在程序崩溃的风险,所以,可以在这部分代码逻辑层,添加异常处理机制。如下:try { $ret = $t
2016-11-22 17:28:31
9784
原创 解决thinkphp关闭调试模式404报错问题
在使用Thinkphp框架进行开发项目,往往在上线之前,需要关闭调试模式,但这时候发现原本访问正常的网页,在关闭调试模式之后无法访问,报错404;问题回顾:当设置项目开启调试模式时:define('APP_DEBUG',True);访问服务:正常访问;关闭调试模式:define('APP_DEBUG',False);再次访问服务:访问失败;一般会得到下图:
2016-11-10 21:29:32
19991
1
原创 合理使用nginxhash策略做更有意义的负载均衡
前言:目前,许多的web应用,或者web接口,都会在服务器的入口处,使用一个服务器容器来监听端口,然后进行请求转发,例如nginx Apache等。服务器容器对应整个web服务有着至关重要的作用,包括:可以很好的管理服务进程,进行代理,对请求的预处理,以及负载均衡。今天要讨论的重点为在服务器集群中,合理使用nginx的hash策略做更有意义的负载均衡。概要:当我们的服务
2016-11-09 20:49:54
14760
原创 php下载大文件的方法
假设一个场景:当用户需要通过我们提供的下载服务,来下载一个较大的文件(200M-2G)时,我们服务端应该如何来满足这个服务呢?且当我们的服务端是采用nginx+php的架构时,该如何解决呢。作为服务端接口层,我们需要从数据层(可能是云存储,可能是类似于亚马逊S3的存储服务)下载较大文件(200M--2G),然后将下载得到的文件,返回给请求客户端。且当我们的服务端接口层是采用ngin
2016-11-06 23:13:10
19800
1
原创 如何使用php的hashtable
hash表(散列表)在我看来一直是个牛逼的设计,因为它时间复杂度为O(1)。简直是远离循环,减少耗时的神器。今天好好看了看hash表的实现原理,觉得其实是自己把大学期间的基础知识给忘得一干二净,不扯远了。1、hash表的原理:具体原理参见,http://zha-zi.iteye.com/blog/1124484 和 http://www.cnblogs.com/carbs/archiv
2016-11-05 22:43:45
15647
原创 BP神经网络的前世今生
在神经网络家族中,有很多种神经网络,为什么偏偏要谈bp神经网络呢,因为bp神经网络在工业界运用较为广泛,技术相对成熟。另外,在学术界bp神经网络是一种经典的神经网络。本文会从bp神经网络的设计、结构、训练等方面进行介绍。 首先,简要介绍一下神经网络的基本原理。 说白了,神经网络是人工智能对生物学中的神经系统结构进行的模拟。上古计算机科学家们,是想通过对生物学上神经系统的模拟得到
2016-11-05 21:26:15
22210
4
原创 服务端关闭session的重要性
如果一个服务不需要session的话,尽量要将session关闭。作为一名服务端开发者,在现如今敏捷开发的年代,都会选择使用框架来进行开发,但是许多框架有自己的默认配置规则,比如php语言的thinkphp3.2框架,会默认开启session会话。但就是这样一个不起眼的小配置,却可能导致整台服务器出现问题,甚至服务挂掉。原因如下:如果你的站点是一个每日请求上百万级规模的
2016-11-05 21:10:37
16299
原创 解决thinkphp3.2中使用redis报错
当完成了php对redis的扩展之后。发现在ThinkPHP中按照如下方法使用redis会报错:$redis = new Redis();$redis->connect(‘127.0.0.1’,6379);报错:”无法加载缓存类型:127.0.0.1”原因如下:ThinkPHP 会根据命名空间的规则找到框架写好的Redis类(位置:Think\Cache\Dri
2016-11-05 20:11:42
19095
原创 Cassandra安装部署
1、下载Cassandra压缩包:wget http://mirror.bit.edu.cn/apache/cassandra/2.1.16/apache-cassandra-2.1.16-bin.tar.gz(也可以从Apache官网下载http://101.96.8.165/www.apache.org/dyn/closer.lua/cassandra/2.1.16/apache-cassandra-2.1.16-bin.tar.gz)
2016-11-04 11:26:54
16663
1
原创 mysql与redis安全问题
作为网络服务的中心,网络服务器,经常会受到来自外部的攻击,今天简单概括一下,作为服务端重要组成部分--数据库服务,存在哪些不安全的地方,以及如何去防范;常见服务的安全问题:1、redis服务;2、mysql服务;redis服务所存在的潜在安全问题:redis crackit 漏洞利用实例;由于很多reids服务都是免密码登录的,连接无密码认证的reids服务
2016-10-30 18:02:57
11520
原创 基于cocos2d-x的简单游戏
该课程设计的主要任务是运用在《C++面向对象程序设计》课程中学到的理论知识来指导实践,使学生了解面向对象和面向过程之间的区别,学会用类的方法解决实际问题。掌握类、模版等概念,掌握面向对象程序设计的基本概念和基本方法,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,深化对C++语言编程和开发工具运用的认识,提高软件项目开发实践能力和软件工程管理能力。二、设计说明与调试分析1、本
2014-04-27 12:47:07
4796
原创 hadoop 中文词频排序 top-k 问题
本人最近一直在hadoop领域,摸爬滚打,由于最近老是布置了一项作业:让统计一个文件中出现次数最高的单词。一看到题目我就想用hadoop来实现这个问题,由于有现成的wordcount框架,所以就在这之上进行程序的修改添加即可。 准备过程: 1、我去下载了金庸的小说全集,顺便分析分析,看他老人家笔下,谁的戏份更重。 2、由于是中文分词,所以必须要有一个中文分词器,找到了
2014-03-22 11:29:42
16236
原创 hadoop 单词筛选 top-k问题
最近开始学习hadoop,(hadoop 以下简称hd),在完成了hd的环境搭建之后,就开始试着跑那些原始例子,比如其中的wordcount,统计文章中各单词的出现频率。由于本人还在念书,在我们这学期开设的软件工程课上,老师布置了一道题。如下: 请实现程序:筛选出文章中出现频率最高的10个词语。文件大小30k--300k. 一看这题,我立马想到了hd去实现,这300k的数据简直
2014-03-16 19:27:19
12004
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人