如果能用 ssh 的话,直接 ssh -R 就可以把内网端口 forward 出去。 我正在拿 elixir 写一个 websocket tunnel 替换 ssh tunnel 用,以应对恶劣的网络环境,等测试完狗粮可以扔出来晒晒
我感觉 SICP 给零基础的教效果更好,不然还得先忘掉其他语言先入为主的想法,被各种 fancy 的语法糖和过度抽象遮蔽了程序的本质
@rubyist518 我没用 rcov,用的 simplecov
MetricFu 这个也整合了好多分析库
@huacnlee 刚才选分支看错了,现在发了
用 query_string
直接处理用户输入会出异常,可以改成 simple_query_string, 已发 PR
[''].product(*(s.each_char.map { |char| [char.downcase, char.upcase].uniq })).map(&:join)
现在还缺投影不
@xiaoronglv 我带一个吧
@lihuazhang 可以的
我们用的是 ik,效果还不错,主要是词库比较全,支持 stopword,而且 ik 那个库里直接带搜狗的词典了。。。 https://github.com/medcl/elasticsearch-rtf/tree/1.4.0 这里的词典还是简繁都有的,非常方便
是啊,所以 app server 都是分开滴呀
酱紫啊,unicorn 不是一个萝卜一个坑的吗,两个项目公用 unicorn 不好吧,咋更新。。。
passenger 没用过,我是用 unicorn 的。。。app server container 里跑 unicorn,web server container 里跑 nginx 就可以了,只需要 app server 有 rails 环境
楼主要想把 nginx 也分离出去那就单独起一个 nginx 的 containner 就可以了呀,把 nginx 的配置文件用 volume 挂载进去。跟应用服务器的通信可以用 link 端口的方式,也可以挂载 sock 文件。
Scrapy
楼主源站地址是啥,我之前也碰到过这个问题,七牛没法从源站是 HTTPS 的站镜像。。。
@flowerwrong 对,随便映射一个端口,允许外部访问即可,在 cap 脚本里的 production.rb 中指定目标服务器的时候加上 port: xxxx
我目前的做法是将代码放到 volume 中,在有 Rails 执行环境的容器里开启 SSH,然后就跟以前一样了。 Dockerfile 如下:https://registry.hub.docker.com/u/hemslo/railsapp/dockerfile/ /data 下面是放代码的
@046569 本来就是用来清洗流量的,所以这类服务的信用也是很重要的,就好比把钱扔家里还是银行里,要是敢卖了就木有人敢用了。。。
想滤掉这些非法访问最合适的办法是上一层 WAF,不想自己维护可以使用云 WAF,比如安全宝。。。
PUT 的话把参数以 JSON 形式放到 body 里面会更好吧,客户端库拼那个参数因为没标准,所以好麻烦的。。。 用 Ruby 的话还好弄点,直接上 Active Support
require 'active_support/core_ext/object/to_query'
params = { a: { b: [1, 2, 3] } }
params.to_query
用其他语言拼这个就费劲了,都得自己实现一个 to_query ...
赞!足见社区之新潮~
既然装 了 nginx 1.6,那把 SPDY 也一块开了不~
如果你用云服务器的话,比如 UCloud,阿里云,他们都有详细的备案指南。如果不备案的话,解析到国内的主机,一般主机的提供商会联系你备案的,不然不让你继续用。如果你是个人项目的话,还是域名和主机都买国外的好了,公司用的话还是走这套该死的备案流程吧。。。
备案坑多,要是在北京机房备案就必须得在国内买域名,因为要提供域名证书,这破玩意只有国内才有。此坑刚踩过,供楼主借鉴。
最好不要这么用,见 matz 的回复 http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/6745
要是不想另外起个进程也可以考虑 Sucker Punch https://github.com/brandonhilkert/sucker_punch
如果想把这些信息存到数据库用来提供查询的话,可以写个 Grape 的 Middleware,其实还是个 rack middleware 可以这样:
class ApiLogger < Grape::Middleware::Base
def after
req = request
request = {
ip: req.ip,
method: req.request_method,
fullpath: req.fullpath,
headers: req.headers,
body: env['api.request.input']
}
status, headers, bodies = *@app_response
# record to database
@app_response
end
end
然后再 use 这个 middleware 即可