未来往事
我愿像茶一样,把苦涩留在心底,散发出来的都是清香。 [2017年 第50周/共52周]

Nginx限制并发连接数和白名单配置-提升整体并发

背景/需求:

恶意攻击、恶意采集、恶意刷页面
秒杀、抢购并发连接限制、队列缓冲
web下载带宽限制、web请求速率限制
CC攻击

Nginx连接数限制模块:

说明:Nginx有很多模块、模块下面又分很多指令,下面就说说limitconn_zone和limit_conn两指令

limit_conn_zone模块指令配置

Nginx http模块中添加
http{
……………………
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;

server{
……………………
}
}
PS:配置区域名称为perip、perserver,















......
+阅读全文

phpmyadmin Error during session start

错误详细描述:
phpMyAdmin - Error
Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.
错误截图:
点击在新窗口中浏览此图片

系统环境:
centos7 apache

错误原因分析:
服务端无法写入se......
+阅读全文

mysql用户变量 mysql用户自定义变量 @:=

mysql用户自定义变量:可以先在用户变量中保存值然后在以后引用它;这样可以将值从一个语句传递到另一个语句。用户变量与连接有关。也就是说,一个客户端定义的变量不能被其它客户端看到或使用。当客户端退出时,该客户端连接的所有变量将自动释放。

用户变量的形式为@var_name,其中变量名varname可以由当前字符集的文字数字字符、‘.’、‘’和‘$’组成。 默认字符集是cp1252 (Latin1)。可以用mysqld的—default-chara

......
+阅读全文

php图片添加水印/图片合成/水印平铺

php图片加水印,php文字水印,php平铺水印,php图片水印,php图片添加图文 平铺水印。

图片添加文字水印

  1. $bigImgPath = '08.jpg';  
  2. $img = imagecreatefromstring(file_get_contents($bigImgPath));  
......
+阅读全文

URL数字安全码随机拼组生成及校验

URL数字随机重组校验,URL地址id随机加密生成及逆向校验 URL加密解密
PHP版本:
  1. echo geturl(888);  
  2. //输出结果:http://fity.cn/post/984-1186-187-2698712709009 //每次刷新数值都会全部改变。  
  3. //实现原理:对数字888重组后为999,然后999+187=1186。可应用到一些防刷、防采页面,如投票防刷(id数字不公开全在服务端处理好)。  
  4.   
  5. /** 地址拼组 */  
  6. function geturl($a){  
  7.   return $href = "http://fity.cn/post/".renum($a);  
  8. }  
  9. /** 数字重组  未来往事博客:http://fity.cn */  
  10. function renum($a){  
  11.   $n = numScaler($a);  
  12.   $c = SetRandNum(strlen($a));  
  13.   $d = SetRandNum(strlen($a));  
  14.   $n = intval($n) + intval($d);  
  15.   $b = getMillisecond();  
  16.   $b = numScaler($b);  
  17.   return $c."-".$n."-".$d."-".$b;  
  18. }  
  19. /** 数字换算 */  
  20. function numScaler($a){  
  21.   $str=str_split((string)$a);  
  22.   $b="";  
  23.   foreach($str as $key => $val){  
  24.     switch($val){  
  25.       case "0":$b .="0";break;  
  26.       case "1":$b .="2";break;  
  27.       case "2":$b .="5";break;  
  28.       case "3":$b .="8";break;  
  29.       case "4":$b .="6";break;  
  30.       case "5":$b .="1";break;  
  31.       case "6":$b .="3";break;  
  32.       case "7":$b .="4";break;  
  33.       case "8":$b .="9";break;  
  34.       case "9":$b .="7";break;  
  35.     }  
  36.   }  
  37.   return $b;  
  38. }  
  39. /** 随机值生成  未来往事博客:http://fity.cn */  
  40. function SetRandNum($n){  
  41.   $a="";  
  42.   for($i=0;$i<$n;$i++){  
  43.     $a .= floor(random()*10);  
  44.   }  
  45.   return $a;  
  46. }  
  47. /** 0.0-1.0随机值生成 */  
  48. function random(){  
  49.     return mt_rand() / (mt_getrandmax() + 1);  
  50. }  
  51. /** 获取当前时间戳,精确到毫秒 */  
  52. function getMillisecond() {  
  53.   list($t1$t2) = explode(' ', microtime());       
  54.   return (float)sprintf('%.0f', (floatval($t1) + floatval($t2)) * 1000);  
  55. }  

jquery版本:
+阅读全文

jquery web流程图拖拽构建

js/jquery实现流程拖拽,js/jquery实现web流程设计器,js/jquery动态流程图构建

实现意义:
管理员可以随时根据企业的运营发展情况便捷动态调整企业的组织架构(审批)流程、可视化流程建模,通过流程设计器,快速通过“拖、拉、拽”实现流程定义建模,通过流程监控实时分析流程实例的运行数据分析,提供企业流程的不断优化的依据,同时智能流程版本管理功能,当流程变化较大时旧的实例按旧的流程定义运转,新启动的流程按新版本的流程运转,新旧隔离互不影响。从而降低系统维护人力投入及维护时间。

正文:
JQuery UI的拖拽功能:
JQuery UI是JQuery官方支持的WebUI 代码库,包含底层交互、动画、特效等API,并且封装了一些Web小部件(Widget)。同时,JQuery UI继承了jquery的插件支持,有大量的第三方插件可以丰富JQuery UI的功能。
JQuery UI提供的API极大简化了拖拽功能的开发。只需要分别在拖拽源(source)和目标(target)上调用draggable和droppable两个函数即可。
拖拽原理:
首先要明确几个概念。
  ource:拖拽源,要拖动的元素。
  taerget:拖放目标,能够放入source的容器。
拖拽的动作分解如下:
  1. drag start:在拖拽源(source)上按下鼠标并开始移动
  2. drag move: 移动过程中
  3. drag enter:  移动进入目标(target)容器
  4. drag leave: 移出目标(target)容器
  5. drop: 在目标(target)容器上释放鼠标
  6. drag end: 结束
在html5之前,页面元素不直接支持拖拽事件。所以都是通过监听鼠标事件并记录拖拽状态的方式来实现拖拽功能。如:
点击在新窗口中浏览此图片

jsPlumb的流程拖拽功能:
jsPlumb是一个强大的JavaScript连线库,它可以将html中的元素用箭头、曲线、直线等连接起来,适用于开发Web上的图表、建模工具等。它同时支持jQuery+jQuery UI、MooTools和YUI3这三个JavaScript框架,十分强大,大家可以在官网的Demo中看看它的功能。如:
+阅读全文

jQuery甘特图开发基础

jQuery.Gantt插件是一个非常轻量级的插件,使用纯HTML代码创建甘特图,不需要矢量图形或图像。插件支持拖拽调整甘特块和回调函数更新数据。

点击在新窗口中浏览此图片

关于使用场景的很少案例:项目管理排期、广告系统排期等,欢迎补充

【参考文献】
jQuery.Gant:http://taitems.github.io/jQuery.Gantt/
......
+阅读全文

专利技术交底书(涉及计算机软件的发明)范例说明

专利技术交底书(涉及计算机软件的发明)范例 编写格式要求说明

发明名称
(25个字以内) 简明、准确地表明专利请求保护的主题。名称中不应含有非技术性词语,不得使用商标、型号、人名、地名或商品名称等

本专利属于以下哪一种:
1、纯软件的算法发明,如一个能实现游客在室内外精确定位的导航软件; 2、软硬结合,即通过算法对相关硬件的功能进行改进,如采用某一算法使内存读取速率大为改进。

一、所属技术领域(即其直接所属或应用的技术领域)
本技术所属的技术领域为……
示例:本技术所属的技术领域为计算机领域,其涉及到一种GIS应用系统开发中,数据编辑时的图形节点坐标捕捉方式的设计与实现。

二、背景技术(即现有技术)
指对专利的理解、检索、审查有用的技术,可以引证反映这些背景技术的文件。 简要说明与本发明的工艺或方法最接近的现有技术的相关内容,涉及科技术语的话需要给出明确定义。如果可能,客观地指出现有技术(包括市场上的产品、技术、现有已公开的专利文件、公开发表的期刊论文等等)存在的问题和缺点(要着重笔墨针对本专利要重点解决的技术问题、而现有技术中存在的该缺点做描述,其他本专利不能解决的现有技术缺点可以不写),并结合其工艺或原理说明存在这些问题和缺点的原因。引证文献、资料的,应写明其出处;需要引用已公开专利文件的,请写明专利名称与申请号。

三、本专利要解决的主要技术问题(即发明主要目的)
即本专利最重要的改进是解决了现有技术中哪些问题,对应前面的“背景技术”的缺点来写。

四、技术方案【核心部分】
+阅读全文

免费稳定SSL证书申请及服务器HTTPS协议配置支持

免费稳定SSL证书申请网站,ssl证书服务器部署,HTTPS协议配置支持

更新支持HTTPS协议的初衷/背景:
谷歌从 2017 年起,Chrome 浏览器将也会把采用 HTTP 协议的网站标记为「不安全」网站;苹果从 2017 年 iOS App 将强制使用 HTTPS;在国内热火朝天的微信小程序也要求必须使用 HTTPS 请求。

基于上述需求实现HTTPS对于可以说是势在必行,而HTTPS的起点则是获取一张SSL证书。所以亲测了下推荐以下两个免费稳定SSL证书申请地址:
1.SSL For Freehttps://www.sslforfree.com
......
+阅读全文

减少TCP连接中的TIME-WAIT sockets数

linux TIME-WAIT相关参数:
net.ipv4.tcp_tw_reuse = 0    表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭
net.ipv4.tcp_tw_recycle = 0  表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭
net.ipv4.tcp_syncookies = 0   表示关闭SYN Cookies。
PS:/sbin/sysctl -a可以查看Linux各项内核参数

修改TIME-WAIT相关参数配置:
#vi /etc/sysctl.conf
net.ipv4.tcp_syncookies = 1 表示开启SYN Cooki
......
+阅读全文

删除目录下的所有.svn版本库目录_CentOS

程序开发过程中当使用了svn软件进行版本控制后,程序每个目录下都会有一个.svn目录存在,开发完当交付产品或上线时这些目录是冗余的需要进行删除,批量删除命令如下:
find . -type d -name ".svn"|xargs rm -rf  #先(递归)找到当前路径下含有 .svn的文件目录,再经xargs逐个删除

find . -type d -iname ".svn" -exec rm -rf {} \; #先(递归)找到.当前路径下含有.svn的文件目录,再删除
PS:-iname filename #同-name ,区别 -i 忽略大小写

扩展补充:......
+阅读全文

批量删除/复原 批量选中js

批量删除 批量复原js jquery

  1. <script type="text/javascript">
  2. function chkbox(){
  3. $
......
+阅读全文

PHP CURL代理访问

php curl curl_setopt代理,PHP CURL使用代理访问WEB服务器

  1. $proxy = "118.69.202.160";  
  2. $proxyport = "3128";  
  3. $ch = curl_init("http://www.fity.cn/");&nbs
......
+阅读全文

CURL HTTP构造请求Header实现伪造来源IP的说明

CURL HTTP构造请求Header实现伪造来源IP的说明

伪造的只是X-FORWARDED-FOR和CLIENT-IP,REMOTE_ADDR伪造不了。
$_SERVER['REMOTE_ADDR']是由nginx传递给php的参数,就代表了与当前nginx直接通信的客户端的 IP(是不能伪造的)


PHP获取客户端IP,代理服务器IP,共有如下几类情况:
一、没有使用代理服务器的情况:
REMOTE_ADDR = 您的 IP
HTTP_VIA = 没数值或不显示
HTTP_X_FORWARDED_FOR = 没数值或不显示

二、使用透明代理服务器的情况:【Transparent Proxies】
REMOTE_ADDR = 最后一个代理服务器 IP
......
+阅读全文

天麻鲫鱼豆腐汤

食材准备:
主料:鲫鱼1条,天麻30克,枸杞10克、红枣4颗、豆腐。
调料:姜片、八角、小葱、盐、植物油、开水。

加工步骤:
1、鲫鱼刮鳞、去鳃、内脏,洗净后沥干
2、天麻和枸杞用清水浸泡回软,豆腐切块,生姜切片备用
3、鲫鱼入锅,煎至两面金微焦,将煎好的鱼临时盛到盘子中
4、倒入一壶开水,加入天麻、姜片、八角、红枣后再次煮至沸腾
5、放入煎好的鲫鱼、枸杞、少许小葱、豆腐后大火烧开
6、放盐,转小火焖煮20-30分钟,放入小葱,出锅
......
+阅读全文