https在cdn下如何获取真实ip

当你使用cdn的时候,难免会遇到一个问题,就是https如何获取用户的真实ip呢?也就是当你没有后端服务器证书的情况下,纯tcp转发的情况下,如何获取用户的ip地址?

基本思路就是使用 jsonp技术。

如上。

摘自:https://www.ipify.org/
这样就获取到了用户的真实ip地址。

第一次获取后,写入cookie或者提交到后端,写入session中即可~

SourceTree cat-file

最近想把rubymine戒掉,用Atom。

但是git有时候要对比文件,可视化还是看着舒服一点,并且有时候想cat某个commit下的文件。

一般我们用命令

但是在sourceTree中并不提供这种功能~ 提供的快速查看用的mac的默认工具预览,可是有的文件后缀根本没法预览。

所以还是用git cat-file 吧。

如何添加呢?

在SourceTree中有个自定义操作:

屏幕快照 2016-08-01 22.20.14

添加这个操作后,就可以用鼠标cat commit中的这个文件啦!

屏幕快照 2016-08-01 22.22.01

选择cat-file就可以读取文件内容啦了~

但是后多时候我们需要读取当前这个文件父commit的的文件,也就是当前commit中的文件修改之前的文件内容。

所以我又写了一个脚本

屏幕快照 2016-08-02 01.42.57

注意,运行的是一个shell脚本

没办法,读取父类的内容比较复杂一些了,一堆命令SourceTree好像搞不定。

这样就可以读取当前commit修改的文件之前的内容。

Rust语言 Atom作为IDE

最近发现rust很不错啊,性能跟c/c++差不多,语法更“安全”。

所以想学习学习。

写代码嘛,有的人喜欢vim,有的人喜欢ide。

我个人比较喜欢atom。

如果要配置rust的ide,推荐的插件如下:

tokamak, rustfmt, language-rust

有这3个够了~

之前其实玩go语言都上手了~ 还写了一个proxy。 可是这语言效率上不如c/c++,虽然写并发非常爽,感觉没其他的优点,所以学下rust玩玩。

 

rails在IE浏览器下无法保存session的问题

锐壳是用的rails写的。

一直有一个bug,就是IE浏览器下,可能无法登陆账号,也就是session无法存储。

这个我一直没重现(工作用mac),今天突然用台式机,IE登陆账号,发现一直登陆不了。

于是找了半天,终于知道是什么原因了。。

XXX/config/initializers/session_store.rb

将abc_123改成 abc123

不能有 下划线!!

终于好了……扯犊子啊。。

rails的设置与公告开发

好久没扯淡了~ 博客荒了不少时间,有时间还是写一些~

最近太忙啦!

好啦,因为网站要开发一个“设置”功能,所以基于设置功能,开发一个公告等。

设置存在数据库中,本质上是一个K/V表。

比如现在有这样一个表

列:key | content

内容: abc | hello world

先实现一个Setting表:

这样就实现了例如

这样的语法。

直接读取数据库中的key字段为 abc的内容“helloworld”。

也可以这样

直接设置key列下字段为 abc的content为 “thank you”

是不是好方便呀。 ruby就是这么强大~~

现在基于Setting这个类,继承,实现一个公告类。

于是,我们写读取数据时,会自动在key字段前加一个 NOTICE_ ,用于区分不同的类型的设置。

例如

生成的sql语句为

完毕。

不易

感觉自从准备结婚,生活的压力呀,担子呀,各种还是蛮有压力的。

最近房子搞装修,花钱也是跟流水一样。。

花钱跟流水一样是怎么样的体验。。。?

心累。

创建的锐壳虽然能提供一些收入,但是任然不够花,最近又被各种攻击,收入降低,甚是无奈。

工作、生活、创业。

这就是生活,苦乐也只有自己懂。

别人不懂你的生活,自己也要苦中作乐。

我有时候给自己的压力并不小,生活肯定不一定都如意。

有时候一度想关闭锐壳,或者关闭虚机,与其背着骂名,说你不懂如何防御攻击,不如放弃,自己多么努力,用户还是不会懂你的辛勤。

当然可以理解用户的想法,用户付了钱,当然只看结果。

但是我一直都告诉自己,如果锐壳不做好,那么未来可能任何事情都做不好了。

我是一个总是有各种点子的人,想做的事情太多。

成长一部分的作用,就是让自己明白:一个人的力量始终是有限的,所以必须专注,努力做好一件事,未来才能衍生出更多的产品。

 

所谓成长,就是不断爬起来。

终有一天,你会站到高处,看着黎明与黄昏,日月与星辰,孤独的老去,死亡,终结。

终结是每一个人都逃不过去的宿命。

时间的河里,会不会留下你的痕迹?

阿里云优惠码一枚

今天才知道自己有阿里云的推荐优惠码,使用推荐优惠码你可以获得九折的优惠。

优惠码:an7f0p

阿里云的云服务还是不错的。

Nginx+lua+redis实现站群,不用reload和配置

公司最近想做一个pages静态网站服务,我负责这服务器端和网站前后端的开发。

那么按照常规思路来做,就会有几个问题:

  1. 要给每一个网站建立一个config,也就是告诉nginx,这个网站的所在的root路径,域名什么的
  2. 每次配置了config,都要nginx -s reload。如何网站非常多,每次修改都要reload一下,不见得是好事

所以为了解决这个问题,于是我打算使用lua模块来动态设置 root 路径:也就是根据不同的域名(host),来设置root的路径。

要解决下面几个问题

  1. 每次修改nginx的域名等配置怎样才能不用reload?
  2. 如何根据不同的host来匹配到不同的root路径呢?

于是就要使用redis了。redis是一个非常快的key/value内存数据库,非常的快。

我们可以将 host -> /home/website 这种键对值的方式来存储不同的域名对应不同的网站路径。

于是我们重新下载和编译Nginx

Nginx加入了nginx 开发包,lua, redis lua驱动程序等模块。

完成后,在nginx加入配置:

配置完上面的代码后,就实现了动态根据不同的域名设置不同的root路径,这一切都是动态的,不需要reload,也不需要配置重新写配置文件,也不需要频繁的连接redis(因为有table变量存储hash表来缓存redis中的内容)。

唯一需要做的,就是当用户修改了网站域名等信息时,设置一下redis的值就行了。

根据这个思路,还能实现动态路由分发(不同用户,不同域名,不同的服务器)。

最近准备换个工作,想跳到技术能力强的公司,也能学到更多东西~~深圳的邮件我呀 molisoft@qq.com

睡觉~~~

 

学Go语言

有时候想做一些事,发现ruby的效率不行,c/c++又基本忘记了,而且开发效率也不高。

所以准备学习一门编译型语言,发现Go语言不错,语法简单,执行和开发效率都不错。

花了一周把《Go语言编程》(七牛CEO写的)看了,发现这语言真不错。

:)

广告

关于

有梦想的人,偶尔活在自己的世界。
努力让程序提高人们的效率。

这是我的个人站点,也是我的生活,idea集中营。
---
molisoft@qq.com
---
Twitter:@moli520
---
2013-12至今 Work@OSC
2013 Work@优比赛克电子科技
2011 Work@Avata网络科技
2011 Work@京维云科技

近期文章

最新评论

  • 正在加载...

分类目录

标签云

统计