小编Joh*_*hir的帖子

多站点ssl证书

我们有一个完整的白标应用程序,客户端已将域指向我们的IP地址.当请求进入时,我们检查$ _SERVER ['HTTP_HOST']并根据$ _SERVER ['HTTP_HOST']提供应用程序.

是否可以为所有客户使用多站点SSL证书?

ssl sni

3
推荐指数
1
解决办法
2979
查看次数

Openssl TLS扩展支持配置(服务器名称指示)

我想配置openssl客户端服务器以支持TLS扩展,特别是服务器名称指示(SNI).

我在ubuntu linux上构建了最新的openssl 1.0.0e,但没有提供任何额外的配置参数.

 
./config
make
make install

在构建此版本时,不确定是否需要提供任何其他配置参数.

现在我已经设置了服务器并使用openssl,viz s_client和s_server提供的标准命令行工具通过openssl客户端连接到服务器.

我的问题是:如何在s_client中指定要作为扩展名发送的主机名?openssl是否具有使用命令行中的某些参数指定服务器名称的规定?

谢谢!

ssl https openssl sni

3
推荐指数
1
解决办法
6983
查看次数

ActiveSupport如何处理月份金额?

我很高兴和惊讶地发现ActiveSupport以我想要的方式完成月份总和.无论在这几个月中有多少天,添加1.month到某个特定的日期Time都会让您在同一天的日子里登陆Time.

> Time.utc(2012,2,1)
=> Wed Feb 01 00:00:00 UTC 2012
> Time.utc(2012,2,1) + 1.month
=> Thu Mar 01 00:00:00 UTC 2012
Run Code Online (Sandbox Code Playgroud)

activesupport提供的months方法Fixnum没有给出线索:

def months
  ActiveSupport::Duration.new(self * 30.days, [[:months, self]])
end
Run Code Online (Sandbox Code Playgroud)

按照...中的+方法Time

def plus_with_duration(other) #:nodoc:
  if ActiveSupport::Duration === other
    other.since(self)
  else
    plus_without_duration(other)
  end
end
Run Code Online (Sandbox Code Playgroud)

...使我们sinceFixnum...

def since(time = ::Time.current)
  time + self
end
Run Code Online (Sandbox Code Playgroud)

......这导致我们无处可去.

ActiveSupport(或其他)如何/在哪里进行聪明的月份数学而不是仅仅添加30天?

ruby ruby-on-rails activesupport

3
推荐指数
1
解决办法
764
查看次数

ActiveRecord 触摸导致死锁

我的应用程序广泛使用touch,以便利用 Rails 的模板缓存系统。当批量中的许多不同对象之间创建许多关系时,我的应用程序会执行某种类型的工作。有时,某些工作会导致级联touches 导致死锁。

我可以针对这种情况进行编码,我经常看到这种情况发生,但看到它却揭示了更大的问题,这可能会发生在其他情况下,尽管可能性很小。

要理解这一点,请想象两个人在同一时刻在 Twitter 上互相关注。他们都单击“关注”,导致在他们之间创建关系对象,然后编辑他们的每条记录touch。如果这些接触交织在一起:

  1. 进程1接触用户A
  2. 进程2接触用户B
  3. 进程1接触用户B
  4. 进程2接触用户A

每个进程都使用一个数据库事务,因此这会导致死锁。

我是否错了,这可能发生在我奇怪的批处理作业场景之外的正常应用程序操作中?如果我没记错的话,有什么解决办法吗?我可以以某种方式将touches 移到事务之外吗?(无论如何,最后一次写入获胜对于更新updated_at来说是可以的......)

更新 - 数据模型的更多解释

class Follow
  belongs_to :follower, touch: true
  belongs_to :followee, touch: true
end

@u1 = User.find(1)
@u2 = User.find(2)

# Background Job 1
Follow.create!(follower: @u1, followee: @u2)

# Background Job 2
Follow.create!(follower: @u2, followee: @u1)
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails

3
推荐指数
1
解决办法
3810
查看次数

Chrome 扩展程序如何与系统进程通信?

1Password chrome 扩展读取和写入与主系统(在我的例子中为 OS X)应用程序相同的数据存储。它怎么能做到这一点呢?

google-chrome-extension

3
推荐指数
1
解决办法
1235
查看次数

如何找到redis密钥的上次访问时间?

在redis中,两个驱逐策略allkeys-lru和volatile-lru根据访问时间驱逐密钥.所以,这些信息必须存在于某处.我可以查询密钥的访问时间吗?或者,更好的是,根据访问时间翻阅排序的密钥列表?

redis

3
推荐指数
1
解决办法
1156
查看次数

如何在非导轨项目中使用rails控制台?

我的项目不是Web服务器.我正在使用ActiveRecord和ActiveSupport.我也想拥有rails控制台.如何在不生成整个rails应用程序的情况下执行此操作(和/或,最简单的方法是什么?)

ruby ruby-on-rails rails-console

3
推荐指数
1
解决办法
505
查看次数

如何在rails中为HSTS关闭includeSubDomains?

我不想要这个includeSubDomains选项

? curl -s --head https://example.com/ |grep Strict 
Strict-Transport-Security: max-age=15552000; includeSubDomains
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用:

config.force_ssl = true
config.ssl_options = { hsts: { subdomains: false } }
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Rails 5.0.1

ssl https ruby-on-rails hsts

3
推荐指数
1
解决办法
1050
查看次数

在我的Rails项目中使用yajl-ruby的最佳方法是什么?

Rails 2.3.6开始使用快速新的json库yajl-ruby,"如果可用的话".

在yajl-ruby自述文件的"JSON gem Compatibility API"部分中,它概述了一种方法,可以放入yajl-ruby包含并让应用程序的其余部分无缝地获取它.

所以,理想情况下,我想

  1. Rails使用它
  2. 我的宝石使用它
  3. 我的应用程序代码使用它

实现这一目标的最简单方法是什么?我猜:

config.gem 'yajl-ruby', :lib => 'yajl/json_gem'
Run Code Online (Sandbox Code Playgroud)

作为environment.rb中的第一个宝石.这样做不会导致任何错误,但我不知道如何知道rails是否正在为自己使用它.

谢谢!约翰

ruby ruby-on-rails yajl

2
推荐指数
1
解决办法
4097
查看次数

为什么ActiveRecord从控制台打印sql语句查询?

我正在使用pry,来自控制台的ActiveRecord查询总是打印出相应的SQL语句.我不想要这种行为.谷歌搜索我只看到必须通过将ActiveRecord记录器设置为标准输出明确实现.

这是pry的默认行为还是我设置的忘记内容的结果?我怎么能阻止它?

activerecord ruby-on-rails irb rails-console pry

2
推荐指数
2
解决办法
3753
查看次数