使用nginx的geo模块实现ip白名单

背景:我们原本有个测试域名,考虑到手机测试的方便性,采用的外网解析+内网出口ip白名单的形式 原本用的最简单的nginx的allow和deny的方案,在http时代没有任何问题 但是站点升级到https之后,所有的请求最后都会通过公司的统一网关再到我们的rs 而nginx的allow是采用 romote_addr 字段来进行ip判断,remote_addr代表与web服务器直连的机器的ip地…

Read more

定位机器哪个进程访问外部服务

缘由:有一台DB要下架,修改了访问此DB的代码之后DBA发现机器仍然有进程在访问,所以要定位下是哪个进程在访问 思路:tcpdump抓DB端口的包找到访问的端口号->lsof找到访问端口号对应的进程->查看进程的启动命令 1.tcpdump抓包: tcpdump -nn -iany tcp port 1111 > /tmp/tcpdump tail -f /tmp/tcpdump | g…

Read more

coreseek实现中文全文检索

由于DB里面数据量越来越大,达到500万级,原先数据库like的方案已经非常的慢,经常达到10秒以上,所以迫切的需要找个替代方案. redis方案: 由于redis本身不支持模糊查询只有走另外的方案 方案一: 用KEYS pattern:https://redis.io/commands/keys 具体做法就是把关键字去重并生成一个key,内容为空,搜索时用keys搜索key 优点是方便,缺…

Read more

nodejs内存泄露检测

最近在用nodejs做一个斗鱼弹幕的爬虫,爬虫是守护进程在跑的,在跑了一段时间之后发现进程占用内存开始飙升,几乎把机器可用内存占完了, 在重启了之后情况依然在重复,所以可用肯定爬虫存在内存泄露。 接来下就是要分析下进程的内存占用情况了,这里用到了两个nodejs的模块: memwatch:这个模块的作用是帮助你检测内存泄露情况。 heapdump:打印当前堆快照供后续分析。 …

Read more

三分钟免费升级网站到https

市面上免费的ssl证书挺多,但是可供选择的并不多,沃通跟StartCom的证书已经被各大浏览器不信任,国内云厂商的免费证书又需要使用他们的产品,比较出名的Let's Encrypt证书是一个不错的选择。 Let's Encrypt的ssl证书有三个月的有效期,可以通过Let's Encrypt的官网进行证书安装,这里介绍一个更加方便的网站:SSL For Free 1.进入网站后输入自己的域名 …

Read more

ghost密码重置

长时间没有登录ghost后台了,发现密码忘了,连续登录之后,提示超过输入次数限制了。 进入db,查看users表,发现 status变成locked, 修改status为active,进入http://bcrypthashgenerator.apphb.com/ 这个网站进行源字符串加密得到ghost要求的加密格式,然后update下password字段,done。…

Read more

egret白鹭引擎初体验

前阵子运营同学希望做一个接月饼的活动,考虑到活动节目的元素和交互比较多,直接用原生的html5+css3体验会不好,所以最终选择用现在比较火的一款h5游戏引擎egret白鹭引擎来做,收获挺多,这里总结下。 先看下最终的游戏效果 地址:http://qt.qq.com/syb/ddz/ddzzq/html/ 二维码: 游戏截图: 1、egret白鹭引擎介绍 这里就不过多介绍了,官网地址:http:/…

Read more

通过pyc反编译py文件

如果一步小心删除了py文件,但是pyc文件还在,可以通过工具恢复。 工具:py2.7 uncompyle2 1.首先安装python 2.下载uncompyle2: 地址 3.解压缩,打开cmd到uncompyle2的目录进行安装: python setup.py install 安装成功之后可以测试下: python C:\Python27\Scripts\uncompyle2 -h…

Read more

css去除chrome下select元素默认border-radius

在mac下的chrome,对于select元素会默认有一个border-radius,当然有些情况下并不需要圆角,所以就要去掉。 比较常用的方法是: .select { -webkit-appearance: none; -webkit-border-radius: 0px; } 但是这个方法有个缺点,因为要浏览器默认样式全部干掉了,所以右边原本的上下箭头也没了,所以推荐另…

Read more

chrome://inspect介绍

首先chrome://chrome-urls/这里有全部的chrome-urls介绍。下面详细介绍下: 1.来看下高大上的chrome://inspect 通过它和USB,你可以调试andriod手机上的h5页面,非常的方便和强大。 它支持以下的调试: 1.浏览器tab页打开的h5页面 2.webview里面打开的页面 3.实时将你andriod设备的屏幕录制到你的开发机上 4.通过por…

Read more

django CLI模式执行

django一般用来开发web,但是时不时的会有在命令行执行的场景。 直接在django的app下执行 python manage.py shell 会出现一个交互式界面,如: 如果提示下面这个错误,可能的原因是python的版本较低。 但是有时候我们需要定时跑一个脚本或者逻辑比较多,无法直接写的话,那只能写一个脚本来运行了。 import sys,os sys.path.append("你的工…

Read more

chrome dev tools console api介绍

以google chrome开发人员工具下的console介绍下常用的api: console.log: 打印whatever想打印的东西,如果传入多个参数的话(没有格式化符号),打印的信息会已空格分割。 格式化符号(后面很多api同样适用): Pattern Type %s 字符串 %…

Read more

常用mysql语句备份

1.场景:由于需求变动,需要将一张表里面的两个字段合并并存到其中的一个字段中: 可以这样: update table set column1=CONCAT_WS('|',ifnull(column1,''),ifnull(column2,'')); 也可以这样: update table set column1=CONCAT(ifnull(column1,''),'|',ifnull(column…

Read more

IIFE的二种括号写法的不同点

平常写js的时候经常会用到IIFE(the Immediately Invoked Function Expression自调用函数表达式)的写法。通常情况下,会有比较常见的两种写法: (function() { ... })(); 或者 (function() { ... }()); 当然如果不介意返回值的话,还有其他的写法: !function(){}(); // => tr…

Read more

简单快捷的php判断繁体字的方法

idea出处:http://www.dewen.org/q/501 原理很简单,就中文而言,因为GB2312是保存“所有”简体字列表,而GBK是包含是所有简体中文+繁体中文列表,在php中可以使用iconv进行编码转换,而对于不在码表里面的字符会被转换成空。所以对于”中華民國”,转换成GB2312是时候会变成“中民”,而GBK会原样转换,这样就可以对源串转换成两个不同的编码之后进行比较来判断源串中…

Read more

阿里云安装ghost全记录

心血来潮打算装个ghost玩玩,毕竟现在nodejs这么火,不搞点东西怎么能满足我爱装13的小心灵。 倒腾了半天才终于装好,这里记录下安装的过程和碰到的问题。 安装步骤大体参照这里和这里。当然不会那么顺顺利利的。 我是用apache+mysql的,首先在mysql下新建一个数据库,这里很顺利。 1.下载ghost的源码并解压缩等,PS:ghost的安装目录没有什么关系的,经过测试,随便安装到哪都可…

Read more

前端神器:自动刷新livereload

修改完页面少按下F5一直是我的梦想,几年来一直在需找这种神器,也试了不少种,但是都不尽人意,今天终于找到了梦寐以求的神器。 livereload:官网,但是livereload是收费的。 livereload的思想很简单,前端页面加载一个写好的JS,后台起个server,然后通过websocket等通信方式与后台交互,后台监控文件有变化变通知前端刷新页面。 以下盗用的图,后面会介绍到: 也…

Read more

局部滚动页面,ios键盘弹出会遮挡输入框完美但不优雅的解决方案

很多移动端页面具有一个固定的头部或者底部,这时候一般会用iScroll对页面中的内容部分进行局部滚动,而这么一弄会出现很多意想不到的问题,很让人头疼。 其中一个很麻烦的问题就是如果在局部滚动的div中有input框的,点击input框弹出键盘,这时候键盘会把input框遮挡住,而且input无法获得焦点,如图:(在没有局部滚动的情况下,浏览器会自动将输入框提升到高于键盘底部的位置)。 最头疼的是g…

Read more

chrome扩展离线安装及dev tools主题安装方法

最近看些博客介绍chrome扩展程序的,其中有些dev tools的主题可以瞬间让逼格上升数个档次,再也管不着脑袋里那个装逼的小怪兽,马不停蹄的装起来了,尼玛,果然没有想象中那么简单。 刚开始尝试便失败了,由于公司网络策略,无法直接在chrome网上商店直接安装扩展,那就必须寻求离线安装的方法,还好网上有几个比较详细的介绍,以ZeroDarkMatrix 简单的介绍下步骤: 1. 注意,链接最后面…

Read more

一次追踪apache安装目录的过程

今天登上一台新的机器,想找下apache的安装目录,去看下apache的配置,可不容易下,记录一下: 首先最先想到的肯定是whereis,来看下 木有。。。不会吧,难道木有apache? 然后看下80端口的监听: 还是木有!震精了!难道真的木有apache? 非也,经过大神的指教,原来apache是root用户开启的,普通用户无法通过lsof查看端口监听进程。 那只好切换到root账户再查下了: …

Read more